머신러닝의 한 분야
여러 층
인풋 히든 아웃풋
보편적으로 히든 레이어를 늘렸다가 줄이는 방식
활성화 함수는 보편적으로 히든 레이어 바로 뒤에 넣는다
backpropagation
에러가 나면 뒤에가서 다시 고친다
우리가 만든 적당한 연산량과 정확도를 가진 딥러닝 모델을 베이스라인이라고 한다
노드의 개수를 늘리는게 네트워크의 너비를 늘린다고 한다
레이어의 개수를 늘리는게 네트워크의 깊이를 늘린다고 한다
딥러닝의 주요 개념
많은 데이터셋을 작은 단위로 쪼개서 학습을 시키는데 쪼개는 단위를 배치라고 한다
천만개를 만배치씩 쪼개어 천번하는데 반복하는 과정을 이터레이션이라고 한다
천번 이터레이션을 100번 반복한다고 하면 100에폭을 반복한다고 한다
0은 활성화가 안된거고 정수는 활성호가 된거고
대부분 비선형의 활성화 함수
활성화 시킬지 안시킬지 정한다
렐루가 간단해서 잘쓴다 relu
이미처리는 tanh를 쓴다 하이퍼볼릭탄젠트
오버피팅
딥러닝 모델을 설계 튜닝하고 학습시키다 보면 가끔씩 training loss는 점점 낮아지는데
validation loss가 높아지는 시점
과적합을 해결할 가장 좋은 방법은 데이터의 개수를 늘리는 방법
데이터를 늘리기 위해 데이터 증강을 사용
특히 이미지 처리 딥러닝에서 많이 사용
데이터를 복사 변형시켜서 데이터를 늘림
딥러닝이 일반화를 더 시킨다
오버 피팅을 피할 가장 좋은 방법
가장 간단한 방법
각 노드에서 이어진 선을 빼서 없앤다
랜덤한 노드를 빼버린다
적당한 노드를 빼버러서 성능을 높힌다
컴퓨터 파워만 충분하다면 가장 시도해보기 쉬운 방법
랜덤 포레스트와 비슷하다
각각의 출력을 모아 마지막으로 판단해서 최종 아웃풋을 낸다
local minimum에 빠르게 도달하고 싶을 때 사용
러닝레이트를 처음엔 크게했다가 점점 작게하는 러닝레이트 디케이
오버슈팅을 막는 가장 좋은 방법