-
패스트캠퍼스 환급챌린지 21일차 미션 (2월 21일) : 딥러닝·인공지능 Signature 초격차 패키지 Online. 강의 후기패스트캠퍼스 챌린지 2024. 2. 21. 23:34
자, 오늘은
Part3. 인공지능의 이해 Lv.2: 숲을 보는 인공지능
CH05-08. 신경망의 성능을 높이기 위해 자주 사용하는 방법들
&
CH05-09. 2D conv와 1D conv의 비교
CH05-08. 신경망의 성능을 높이기 위해 자주 사용하는 방법들
여태까지 다양한 인공지능, 아니지 인공신경망을 알아봤는데 그럼 과연 좋은 성능을 갖는 인공신경망은 무엇일까?
좋은 신경망이란?
"특이 케이스에 대해서만 좋은 성능을 보여주는 것이 아니라 일반화적인 측면에서 좋은 성능을 보여줘야 한다."
그래서 4가지의 지표에 따라 인공 신경망의 좋고/좋지않음을 나눠보자.
일반화 측면 / 정확도(Accracy) 측면 / 리소스(Memory and computation complexity) 측면 / 학습속도 측면
1. 일반화 측면에서의 좋은 성과 지표를 받으려면?
OverFitting을 막아야 한다.
▶ 오버피팅,,,,늘 따라다니는 친구...요약하자면 학습데이터에서는 좋은 성능, 테스트에서는 성능이 좋지 않은 모델을 말함
방법? 학습용 데이터를 늘리고, 이른 종료(계속 학습데이터를 넣으면 얘가 자꾸 이상한 삼천포로 빠지기도 한다.)
Regualrization : L2, L1, Dropout 등....
앙상블 : 여러가지 모델을 통합하면 오버피팅을 막을 수 있다....!
1-1. 해결방법
1-1-1. 학습용 데이터를 늘린다.(Data Augmentation)
단순히 복사해서 데이터 양을 늘리는 것이 아니고, 회전도 했다가, 사이즈도 줄였다가, 반전도 했다가
색상도 바꿔봤다가...등등 이런식으로 데이터를 증식하는 것이다.
단!, 과도하게 증강시키면 안된다.(6이 9처럼 보여버리면....말짱 꽝....내부 스파이짓)

사람이 볼땐 비슷하게 보이지만, 컴퓨터는 다 안다.
1-1. 해결방법
1-1-2. 이른종료
위의 이미지에서 보이는 것처럼 validation set으로 검증을 하는 와중에 로스가 감소하면서 학습을 지속하게되면
로스가 갑자기 또 늘어나게 된다.
그러면 증가된다라는 반응이 오면(오버피팅) 몇번까진 봐줄게 같은 선을 만들어 놓고, 이미 저장해 놨던
param을 확인해서 그 적정 선을 찾아내는 것이다.
1-1. 해결방법
1-1-3. Dropout
학습 중 뉴런을 삭제? 삭제는 이상하니까 연결을 끊음으로써 오버피팅 발생 가능성을 줄인다.
몇 퍼센트의 노드를 끊어라 라고 하면 알아서 끊는다.
1-1-4. Featuremap 사이즈를 줄이는 방법
Pooling, Stride 2가지다.
풀링을 적용하면 피쳐맵을 줄이게 되는 방법이고, Stride는 몇칸씩 뛸 것인가 라는 개념이므로
메모리를 줄이는 방법이 된다.
1-1-5. Batch Normalization
한번에 입력으로 들어오는 배치 단위로 데이터 분포의 평균이 0, 분산이 1이 되도록 정규화를 진행
빠른 학습이 가능 : learning rate를 높게 잡을 수 있다. 또한 오버피팅을 막을 수 있다.
자, 이게 무슨 말이냐면 레이레 중간 중간에 배치 노말라이제이션(벡터를 1로 바꿔주는 노말라이제이션이랑
개념이 비슷한 듯 하다) 을 하게 되면 입력되는 데이터 스케일을 계속해서 맞춰주는 연산을 수행한다.
그래디언트 배니싱 과 같은 학습이 제대로 되지 않는 경우들을 막을 수 있고, 러닝 레이트를 늘릴 수 있다.
1-1-6. weight Initialization
우리가 신경망을 설계한 다음에 가중치는 랜덤한 값을 넣는다 라고 이해하지만, 이 이랜덤한 값이 이상한 값이라면
학습을 하는데 굉장히 어려울 수 있다. 수치가 너무 크게 어긋날때는 제대로 학습이 되지도 않은 상태에서
학습이 종료가 될 수 있다. 그래서 이를 방지하고자(초기 가중치 작업이 중요)
2가지 가중치 초기화 기법이 Xavier Initalization / He Initialization 이다.
자비에: 이전 노드의 개수와 현재개수 노드의 개수에 의존해서 특정한 공식에 넣어 값을 설정할 수 있다.
Tanh, Sigmoid와 같은 비선형에서 잘 동작한다.
허 초기값: Relu 쓸 때 좋은 성능이라고 한다....
CH05-09. 2D conv와 1D conv의 비교
Convolution 연산은 이미지에만 적용되는 것이 아니다.!
합성곱이란?
"하나의 함수와 또다른 함수를 반전 이동한 값을 곱한다음 구간에 대해 적분하여 새로운 함수를 구하는..."
너무 어렵다. 컨볼류젼 2D 연산을 수행할 때 학습을 통해 피쳐맵을 채워 넣었는데, 다른 형태에선 어떻게
처리되는지 알아보자.

Text Classification은 우리가 앞서 알아본 이미지 클래시피케이션이랑 동일하다.
(앞에 임베딩 과정이 일어나는데, 사실 큰 차이 없다.)
컴볼류젼과 풀링 / 특징하는 부분
특징을 추출하고 어떤 카테고리로 분류하는지 클래시피케이션 신경망으로 분류 할 수 있다.
21일차 끝.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
'패스트캠퍼스 챌린지' 카테고리의 다른 글