본문 바로가기

Artificial Intelligence

Dropout과 Essemble & Network Model : 더 효율적인 학습방법

우리는 항상 좀 더 나은 신경망, 좀 더 훈련이 잘된 인공지능 기법을 만들고자 한다. 

그렇다면 신경망은 우리에게 보통 모든 노드들이 연결되어진 형태이다. 

하지만 Dropout이라는 기술은 노드들을 꺼서 몇개의 노드들만 활성화된 상태로 훈련을 한다.

노드들을 끄는 확률은 조정할 수 있으며 몇개만 켜진 상태로 결과 값을 출력하게 한다. 이로써 

조금 더 모든 노드들의 가중치가 최적화 될 수 있도록 만들 수 있다. 

 

예를 들어 고양이인지 아닌지 판별하는 인공지능이 있다고 한다.

그랬을 때 판단하는 기준을 1번,2번,3번이라고 해보자. 

1번 : 귀가 있는가

2번 : 눈이 있는가

3번 : 꼬리가 있는가

그리고 랜덤으로 1번,2번이 꺼진다고 해보자. 그리고 3번 노드만이 고양이인지 판별한다고 했을떄

이로써 조금더 최적화된 노드들을 가질 수 있게 된다. 

이것이 바로 Dropout기술의 원리이다.

 

Essemble은 무엇인가?

Essemble은 데이터셋 별로 훈련을 따로 시킨다. 각각 가진 가중치들이 모두 다를 것이고 각 데이터마다 최적화된 노드들을 가질것이다. 그 모든 훈련된 것을 Combiner을 통해서 합쳐서 조금더 효율적으로 학습하는 것이다.

그리고 우리는 FeedFoward의 형태의 신경망을 학습하고 있다. 

노드들이 앞으로 가면서 값을 얻어내는 형태이다. 우리는 Fast Foward, Split, Merge 와 같이 어떤 Net과 Net이 만나거나 나눠지거나 어떤 Net에서 나온 값이 조금 건너뛴 Net의 값으로 들어가는 형태도 만들 수 있다. 

즉 FeedFoward는 우리의 창의력에서 조금 더 나은 , 조금 더 최적의 방법이 나올 수 있는 것이다.

 

나도 만들 수 있지 않을까 생각해본다! ㅎㅎ