3주 차의 목표는 딥러닝의 역사를 배운다.
신경망을 만드는데 필요한 각종 개념을 알아본다,
신경망을 직접 디자인해본다
딥러닝은 머신러닝의 한분야이다.
2주 차까지 배웠던 선형 회귀와 논리 회귀는 모두 1차 함수를 이용해서 푸는 문제였다고 한다면 실제적인 자연계의 문제는 이러한 직선으로 설명할 수 없는 문제들이 많이 있기 때문에 사람들은 선형 회귀 사이에 비선형의 무엇인가를 넣어야 한다고 생각했고 이것은 실제로 잘 동작하였는데 이렇게 사이사이에 층을 깊게 쌓는다고 하여 딥러닝이라고 불리게 되었다.
딥러닝의 주요 개념과 기법을 알아보면
- 배치 사이즈와 에폭 - batch를 설명을 하게 될 때 iteration이라는 개념을 같이 설명을 해야 하는데 우리가 가지고 있는 엄청나게 큰 데이터셋을 학습을 시킬 때 방대한 자료를 한 번에 메모리에 올리기 힘들기 때문에 데이터를 쪼개서 학습을 시키게 되고 이때 쪼개는 단위를 배치라고 한다. 이때 배치로 쪼개서 반복하게 되는 횟수를 Iteration이라고 한다.
epoch은 머신러닝에서 똑같은 데이터셋을 가지고 학습을 하게 되는데 이렇게 한 번의 학습을 하게 되는 단위를 epoch이라고 한다.
- 활성화 함수 - 뇌의 뉴런이 다음 뉴런으로 전달할 때 보내는 전기신호의 특성에서 영감을 받아서 만들어진 함수로 전기신호의 임계치를 넘어야 다음 뉴런이 활성화된다고 하여 활성화 함수라고 명명한다. 실습을 진행할 때 Relu를 적용시키는 것을 많이 보았는데 해당 그래프가 어디서 활성화되는지는 밑의 그래프를 확 이하면 간단하게 확인할 수 있다. 여러 활성화 함수를 교체를 하면서 최종적으로 정확도를 놓이는 작업을 동반하게 되는데 이런 테스트의 과정을 모델 튜닝이라고 부른다.
- 과적합과 과소 적합 - Overfitting, Underfitting이라고 하며 두 개다 간단하게 학습의 복잡도가 원하는 문제의 난이도와 맞지 않았을 때 나타나는 현상이라고 생각하면 된다. 과적합이 일어날 때는 정해진 데이터 안에서는 아주 잘 학습하였지만 실제 테스트할 때는 결과를 틀리는 가능성도 있고 학습한 데이터의 사례가 오류를 일으킬 수도 있는 민감한 부분까지 건드려서 데이터를 조금 줄이고 학습을 시키는 방법이 필요할 수도 있다.
- 데이터 증강 - 과적합을 해결하기 위한 가장 좋은 방법 중 하나로 말 그대로 데이터를 늘리는 것이다. 하지만 실무에서는 데이터를 더 늘리기에는 부족할 경우가 많아서 이미지를 확대 축소 로테이션 색변화 등의 과정을 거쳐서 한 개의 이미지에서 수개 또는 수십 개의 이미지를 만들어서 증강하는 방법으로 사용합니다.
- 드롭아웃 - 사공이 많으면 배가 산으로 간다 쓸데없는 데이터가 많으면 결과에 더욱 혼란만 줄 수 있어서 일정 데이터를 빼는 것을 뜻함
- 앙상블 - 여러 개의 딥러닝 모델을 만들어서 투표로 결정을 합니다. 해당 내용을 보면서 마이너리티 리포트가 생각났었습니다.
- 학습률 조정 - Learning rate를 고정시키는 것이 아니고 학습하는 구간에 따라서 변화를 주어 Local minimum을 효과적으로 찾도록 도와주는 것을 의미함
'DevLog' 카테고리의 다른 글
[내일 배움캠] 깃허브 Profile 만들기 & 꾸미기 (0) | 2022.01.21 |
---|---|
[WIL]머신러닝 - 4주차 강의 개발일지 (0) | 2022.01.11 |
[WIL]머신러닝 - 2주차 강의 개발일지 (0) | 2022.01.11 |
[WIL]머신러닝 - 1주차 강의 개발일지 (0) | 2022.01.10 |
[WIL]내일배움캠프 AI트랙 1기 3주차 주간회고 (0) | 2022.01.04 |