레플리
글 수 218


이제 어느정도 기초를 다져서 단순하게 컨볼루션,풀링 등을 중첩해서 사용하면서 mnist 숫자 분류를 하는 신경망을 재미삼아 여럿 만들면서 연습하고 있습니다. 그러다가 욕심이 생겨서 아래와 같은 구글의 인셉션 모델(버전 1)을 만들어 보려고 했습니다.Inception-V1 Model

 

보니까 컨볼루션, 풀링 위주로 되어있어서 해볼만 한 것 같더라고요(제가 느끼기에만). 그래서 무작정 만들어 보려고 하니까 모델 중간중간에 가지가 따로 나와서 소프트 맥스로 빠지는 곳이 있었습니다. 이 것이 뭔가 해서 찾아봤더니 깊은 신경망으로 인해 역전파에 의한 학습이 제대로 이뤄지지 않는 것을 막기위해 첨가한 것이더군요. auxilliary classifier라고도 하는 것 같습니다.

생전 처음 보는 구조라 당황했지만 일단 저 위 그림 그대로 모델을 만들어보고 loss 함수를 다음과 같이 만들었습니다.

loss = tf.reduce_mean(0.7*tf.nn.softmax_cross_entropy_with_logits(logits = model(실제 전체 모델), labels=y_target) + 0.3*(tf.nn.softmax_cross_entropy_with_logits(logits = first_soft(첫번째로 가지 친 소프트맥스), labels=y_target) + tf.nn.softmax_cross_entropy_with_logits(logits = second_soft(두번째로 가지 친 소프트맥스), labels=y_target)))

 

이렇게 했더니 역시나 안되더군요. 제가 너무 단순하게 생각해서 loss 함수를 잘못 만든걸까요? 아니면 저걸 위해 모델에 뭔가 색다른 것을 추가해야하는 것일까요? 개강 전까지 저 auxiliary classifier만 해결하여 인셉션 모델을 구현해보고 싶은데 답답할 따름입니다.

엮인글 :

깊은바다

2018.08.18 13:45:54
*.68.247.188

실제 구현을 하시다니 대단하네요~ 그런데 메인이 0.7, 첫번째가지 0.3, 두번째가지 1 인가요?

 

# The total loss used by the inception net during training.

total_loss = real_loss + 0.3 * aux_loss_1 + 0.3 * aux_loss_2

 

아래 링크를 보니까 1, 0.3, 0.3으로 loss를 정하는 것 같은데요. 저도 구현을 해본적이 없어서 잘 모르겠네요^^; 소스코드를 구글은 공개하지 않고 있고, 비슷한게 카피한 것도 찾기가 힘든 것 같습니다. 완성되면 소개해주세요 ㅎㅎ

 

https://towardsdatascience.com/a-simple-guide-to-the-versions-of-the-inception-network-7fc52b863202

딥린이

2018.08.19 08:55:51
*.47.126.27

항상 친절한 답변 감사합니다. 저가 로스 함수 설명을 좀 잘못 설명드렸네요. 제가 본 사이트에서 aux loss가 0.3 비율을 갖는다길래 실제 loss를 0.7로 잡고, 나머지 모든 aux-loss를 합쳐서 0.3으로 한겁니다. 담주가 개강이라 완성은 아주 늦을 수도 같네요 ㅠㅠ 완성되면 꼭 올려보겠습니다!

질문이 더 생겼는데요. 보통 그래프를 구현할 때 반복되는 부분을 함수로 만들어서 쓰게 되잖아요. 각 노드의 변수들(가중치나 바이어스 같은 갱신되는 것들)을 책에서는 전체 소스의 맨 처음에 두어 함수 바깥에 선언하여 전역변수로 하던데 꼭 그렇게 해야하는지 궁금합니다. 또 트레이닝이 끝나고 실제 사용시 aux-loss를 제거해야하는데, tf.Check_numerics와 remove_training_nodes를 이용하는게 맞는지 알고싶습니다?

 

List of Articles
제목 글쓴이 날짜sort 조회 수
카톡 대화를 학습하는 AI 아바타 챗봇 - 레플리 file 깊은바다 2024-01-17 353
가입인사겸 질문입니다! [1] 핵초보개발자 2018-08-02 119
질문이 있습니다. [2] 주례소년 2018-08-05 153
안녕하세요 [1] 이근섭 2018-08-08 112
안녕하세요 [1] jyk12 2018-08-14 93
여기는 처음인데 질문이 있습니다 [2] jianjian 2018-08-16 554
질문) 텐서플로우로 구글의 인셉션 모델을 만들고 있습니다. [2] 딥린이 2018-08-17 399
긴글) 방학 동안 얕게나마 딥러닝 공부했던 후기 file [2] 딥린이 2018-08-24 691
인셉션 모델(버전 1)의 학습이 진행되고 있습니다. file [1] 딥린이 2018-08-26 183
초보자가 공부할만한 강화학습(DQN) 책 없을까요? [1] 딥린이 2018-08-31 532
챗봇, 그리고 신 직업.. 어찌 생각하시나요. [4] lopez7 2018-09-05 347
질문있습니다.. - Dialogflow와 Heroku로 카카오톡 챗봇 만들기 [1] swgooddream 2018-09-09 375
안녕하세요 [1] 불새의전설 2018-09-10 142
영화 패신저스의 대화 인터페이스 깊은바다 2018-10-03 219
카테고리 자동분류 [1] 와니와니 2018-10-24 276
[질문] Mnist가 아닌 제가 가진 이미지셋으로 GAN 구현 중 질문 드립니다 file [2] 하얀천사 2018-10-31 201