728x90

Global Average

각 채널 별로 평균값을 추출한다 . 이는 파라미터를 효과적으로 줄이는 효과가 있어서 오버핏팅을 상쇄시킬수 있다. 단, 채널 수가 적은 상태에서 적용하면 오히려 Flatten보다 성능 저하가 우려된다. 강사님의 생각으로는 채널수가 적어도 512이상 있어야 된다고 한다.

 

 

 

가중치 규제

이는 오버핏팅을 극복하는 방법 중 하나이다. 식을 보면 원래 Loss 에다가 alpha*||w||^2 만큼 더해준다. l2는 가중치의 제곱, l1은 가중치의 절대값에 각각 alpha를 곱해준다. 딥러닝에서 "각 layer " 별로 가중치 규제를 적용한다. 개발자 임의대로 layer에 추가 혹은 하지 않아도 되는 자유성이 있다. 강사님의 경험상 해당 기법으로 이득을 본 기억은 없다고 한다. 또한 alpha값을 크게 하면 오히려 성능저하가 됨으로 0.00001언저리에서 사용하는게 낫다.

 

 

 

Data Augmentation

Data Augmentation은 개별 원본 이미지를 변형하여 성능개선 및 오버피팅을 극복할수 있는 방법이다. 기존에는 iteration 할때 원본 이미지로 학습을 진행했다면 지금은 iteration마다 원본이미지에서 변형된 이미지가 대신 들어가서 학습을 한다.

공간 레벨 변형은 이미지를 자르거나, 회전하거나 하는 등 공간을 변형하는 방법이며 픽셀 레벨 변형은 픽셀값 자체를 다르게 변형시킨다.

Augmentation을 지원하는 패키지들의 장단점이다. 요즘 주로 사용되는 것은 Augmentation 전용 패키지라고 한다.

 

 

 

 

ImageDataGenerator 특징

ImageDataGenerator에 이미지를 넣으면 preprocessing을 자동으로 거친 후 model에 들어가게 된다.

빨간색 글씨로 체크 된 부분이 윗부분 자료에 나온 Aug 기법들이다. 해당 기법들을 각각 설정해주면 모델이 돌아갈때 랜덤으로 적용시킨다. 사용자가 조절을 할수가 없다

예를들어 어느 이미지에는 회전, 밝기가 적용되고, 다른 이미지는 shift,, zoom, shear, 회전이 적용되는 등 각각 다르게 Aug기법이 적용된다.

Translate는 상하좌우로 이동하는 shift 역할을 맡는다. Scale는 이미지의 크기를 조정하는 Zoom에 대한 역할을 한다. shear는 각도를 틀어도 이미지를 변환시킨다.

Crop은 특정 사이즈로 잘라낸 후 원본 크기로 resize하기 때문에 비율이 깨진다. 반면 Scale은 비율을 크거나 작게 조정한 후에 원본 크기 만큼의 영역으로 잘라낸다. 참고로 Imagegenerator에는 crop기능이 없다.

 

 

 

위 이론 내용을 토대로한 실습 내용은 아래 링크에서 볼수 있습니다.

2021.10.05 - [실습 note] - CNN_Fundamental 실습 모음

 

CNN_Fundamental 실습 모음

해당 실습은 iflearn "CNN_Fundamental" 강의에서 사용되었습니다. 실습 진행 순서대로 list-up 했습니다 1. Gradient Descent_01 Gradient_Desecent 내용은 딥러닝 수학 강의에서 배웠으므로 따로 이론을 정리하..

ghdrldud329.tistory.com

 

728x90

+ Recent posts