2022. 3. 14. 19:03ㆍSTUDY/머신러닝
비선형회귀
선형회귀의 경우에는 선형적인 데이터들을 분석한 것
하지만 실제 데이터들은 차원이 높고, 복잡한 비선형관계를 지님
해결과정 1
만약 linear layer를 깊게 쌓으면 문제가 해결될까?
--> 결국에는 가중치곱의 항이 여전지 선형이라 비선형문제 해결되지 않는다.

해결과정 2
비선형성을 해결하기 위해서는 비선형함수를 넣어주면 되지 않을까?
layer 사이마다, 다음 layer에 넘겨주기전에 비선형 활성함수를 넣어준다.
(즉, 각 layer의 출력값이 비선형활성함수를 통과한 후 다음 layer에 전달)

학습과정
- Layer를 한개만 사용하는것은 학습 성능이 좋지못함
- 비선형성을 해결하기 위해 다음 Layer로 넘어가기전에 활성화함수 통과
위 두가지를 만족한채 Layer를 다중으로 쌓아 심층신경망을 구성
선형회귀에서 설명하였던, 학습과정과 동일하고 레이어를 깊게 쌓은 형태라고 보면된다.
하지만 레이어를 깊게 쌓으면 문제가 되는것은
Loss를 각 Layer의 파라미터로 미분할경우 복잡하고 계산시간이 오래걸린다.
1. Chain Rule
합성함수 미분할때 쓰이는것으로 심층신경망에 적용하고자 함
layer를 깊게 쌓으면서 생긴 문제점은 각 layer마다 미분을 시행하는것은 계산량이 많다는 것
따라서 chain rule을 통해서 앞서 구한항들을 이용하여 계산속도 개선할 수 있다.
2. Backpropagation
수많은 레이어들을 학습 시키는데 있어서, 파라미터값을 수동으로 조정한다면 얼마나 힘들까?
각 layer들의 파라미터 값을 계속해서 업데이트 해주면서
Loss값을 최소로 만드는 각 layer들의 파라미터 값들을 얻어야한다.
이 과정을 자동으로 하기위해 사용하는것이 Backpropagation이다.

3. Gradient Vanishing
위 backpropagation의 chain rule 식에 따르면 입력쪽으로 다가갈수록 곱셈항이 늘어난다.
문제점
- 활성함수를 통과한 결과값이 h인데, 활성함수 sigmoid와 tanh는 미분을 하면 항상 1보다 작다.
- 결과적으로 곱셈항에 1보다 작은값이 지속적으로 곱해지게 된다.
- 그러면 파라미터를 업데이트하는식의 값(loss를 파라미터로 미분한)이 매우 작아져서, 업데이트가 거의 되질 않음

해결
- gradient vanishing이 일어나지않기 위해서는 미분한 함수값이 1보다 클수도있어야함.
- 이때 사용하는 함수가 ReLU(x)와 LeakyReLU(x) 이다.
- ReLU는 모든데이터가 0보다 작은곳으로 떨어질경우 기울기값이 모두 0이라 gradient값이 모두 죽는경우가 발생하는데 이를 위해 나온것이 LeakyReLU

'STUDY > 머신러닝' 카테고리의 다른 글
[지도학습] 분류모델 - SVM (0) | 2022.03.15 |
---|---|
[지도학습] 회귀모델 - 로지스틱 회귀 (0) | 2022.03.14 |
[지도학습] 회귀모델 - 선형 회귀 (0) | 2022.03.14 |
[지도학습] 분류모델 - K Nearest Neighbors (0) | 2022.03.11 |