이제 우리는 더 학습을 좋게 시키는 방법들에 대하여 알아볼 것이다.
첫번째로 dropout 이다. 말그대로 덜어내는 것이다.
학습을 오히려 많이 시키게 되면서 overfitting 이라는 문제가 생긴다.
overfitting 은 성능을 저하시키는 아주 큰 요인이 된다.
이러한 것의 해결책은
1. 더 많은 데이터 사용하기
2. 특징의 수 줄이기(굳이 할 필요는 없다)
3. 정규화가 있다.
정규화는 수학적으로 cost 함수의 값 뒤에 붙이는 방법이 있다.
다음으로는 drop라는 방법인데 학습 중에 몇개의 노드를 랜덤하게 중간에 그만 둬버리는것 안사용하는 것이다.
과연? 이게 좋은 방법일까?
예를 들어 어떤 각가의 뉴런들은 어떤 분야의 전문가 들이다. 고양이를 구분할때 이건 귀야, 이건 코야, 이건 꼬리야 이런 식으로 각가의 특징을 구분하게 해주는 전문가들의 집단인데 여기서 몇개의 뉴런들을 쉬게 하는 것이다. 그렇게 되면 몇가지의 특징을 이용하여 학습을 시키는 것이다. 물론 학습을 여러번 시키면서 쉬는 뉴런들은 계속적으로 변하면서 학습을 하게 된다.
마지막에는 학습 시킨 걸로 총 동원해서 판단을 시키는 것이다. 결국에는 빠지는 요소 없이 다 사용해서 평가를 해야한다. 이 개념이 중요하다. 학습할때는 다 학습 하는게 아니라 몇개를 안시키고 평가를 할 때는 다 참여를 하는 것이다.
다음은 앙상블이다. 이 아이디어는 독립적으로 신경망을 만든 후에 1신경망 2신경망 ..... 이렇게 많은 수의 신경망을 만든후 나중에 합치는 것이다. 이렇게 하면 더욱 좋은 성능을 나타내게 되는 결과를 나타내게 된다.
******** 참고사항 ********
이제 우리가 배운 딥러닝 모델은 레고처럼 쌓기만 하면 되는 것이다.
resnet, rnn 등 이러한 방식으로 만들어진 것이다.
이렇게 다양한 방식으로 모델을 만들게 되는 것이 딥러닝이다.
이제부터는 어떤 모델들이 있는지 알아보고 정리를 해보자!
끝
'AI > 머신러닝(딥러닝) 정리' 카테고리의 다른 글
11-2. CNN (Convolutional Neural Networks) - Max pooling and others (0) | 2022.05.06 |
---|---|
11-1. CNN (Convolutional Neural Networks) (0) | 2022.05.06 |
10-2. Initialize weights in a smart way (0) | 2022.05.05 |
10-1. ReLU : Better non-linearity (0) | 2022.05.05 |
9-2. Backpropagation (0) | 2022.05.04 |