@@@ 인공지능/수학·통계를 몰라도 이해할 수 있는 쉬운 딥러닝

1 - 2. 분류(Classification) 기법 활용하기(2)

HTG 2021. 7. 5. 22:58
728x90

1-2-2. AI는 꽃을 구분할 수 있을까?

 

●데이터살펴보기

붓꽃 - Iris Setosa, Iris Versicolor, Iris Virginica 으로 구분

3 종류 각각 50포기씩

꽃받침의 길이, 꽃받침의 너비, 꽃잎의 길이, 꽃잎의 너비, 꽃의 종류

 

어떤 인공지능 사용?

3층짜리 FNN

층수 종류 크기 활성화 함수
1층 FNN 4 없음
2층 FNN 128 ReLu
- Dropout rate = 0.5 -
3층 FNN 3 SoftMax

입력층은 총 4개의 피쳐를 입력받기 위해 1층의 크기는 4로 지정

출력층은 3종류의 꽃 아종을 구분하기위해 3으로 지정

 

분류 문제이므로 SoftMax를 지정

2층 아래에 Dropout이라는 값이 기재

 

신경을 버리는 드롭아웃

Dropout은 신경 일부를 버리는 기법

여기에서 드롭아웃의 크기에 rate = 0.5 -> 임의로 50%의 퍼셉트론을 선택하여 드롭아웃 대상으로 선정

드롭아웃 대상으로 지정된 퍼셉트론은 잠시동안 가중치가 0으로 설정되어 다른 퍼셉트론으로 정보를 전달하지 못하게 함.

이유 : 드롭아웃을 적용하면 오버피팅이 방지되는 효과

원리 : 매번 신경망의 형태가 변형되므로 앙상블 기법과 유사하게 학습의 일반화에 유리해짐.

단점 : 드롭아웃을 적용하면 계산 시간이 늘어남. -> 오버피팅이 발생하지 않는다면 굳이 드롭아웃을 적용할 필요 없음.

 

딥러닝 모델 코딩

인공신경망 제작

Sequential 사용하여 구축

 

인공신경망 컴파일

.compile(optimizer = "",metrics = [""], loss = "")

옵티마이저(optimizer) - Adam

메트릭(metrics) - accuracy

로스(loss) - sparse_categorical_crossentropy

 

인공지능 학습

인공신경망 학습

fit 을 사용하여 진행

 

학습 결과 출력

이미지 파일로 결과 출력

 

●인공지능 학습 결과 확인

인공지능 성능 확인

책에는 90~94%가량의 성능인데 나는 왜 어느 시점 부터 100%지?

 

학습 기록 확인

빨간색 - train, 파란색 - test

로스는 둘다 잘 떨어지는 걸 확인.

정확도 곡선을 보면 저자의 경우는 후반에 학습이 불안했지만 왠지 내껀 test는 잘 학습되었다.

 

 

앙상블 학습

앞서 드롭아웃은 앙상블과 유사한 효과가 있어 오버피팅을 피할 수 있다고 했음.

앙상블은 하나의 문제를 해결하기 위해 여러 개의 모델을 학습시키는 것을 의미.

앙상블 기법을 활용할 때는 동일한 알고리즘 모델을 여러 개 학습시키는 방법도 있고, 여러 종류의 알고리즘을 각각 학습시키는 방법도 있음.

결과적으로 하나의 데이터로 여러 개의 인공지능을 제작한다는 점에는 차이가 없음.

이렇게 제작된 인공지능들이 각각 제안한 의견들을 어떻게 취합하는지에 따라 앙상블 기법이 또다시 나뉘기도 함.

다수결의 원칙에 따라 AI의 의견을 투표로 취합하는 보팅 기법이 가장 쉬운 방법.

드롭아웃을 적용하게 되면 매번 임의의 퍼셉트론이 제외되면서 매번 조금씩 다른 형태의 신경망이 학습된다.

이런 모습이 마치 서로 다른 여러 개의 모델을 학습시키는 앙상블과 유사하다고 평가되는 것

 

드롭아웃 하이퍼 파라미터

드롭아웃의 rate도 인간이 조정할 수 있는 값이므로 하이퍼 파라미터에 해당