레플리
글 수 220


이제 어느정도 기초를 다져서 단순하게 컨볼루션,풀링 등을 중첩해서 사용하면서 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 357
질문있습니다.. - Dialogflow와 Heroku로 카카오톡 챗봇 만들기 [1] swgooddream 2018-09-09 375
유능한 AI 개발자를 찾고 있는 헤드헌터입니다. 필운남 2017-09-19 374
일상대화 챗봇에 도전하실 서버 개발자분을 CTO로 모십니다 깊은바다 2021-04-01 368
가입인사겸 문의 드립니다. [2] 번호인식 2019-09-10 358
인공지능 이론 문제 질문 [1] Jessica 2018-04-07 351
이탈리아 피렌체에서 열린 'ACL 2019' 학회에 다녀왔어요 목동하정우 2019-10-21 350
가입인사겸 질문 [1] 창백123 2019-09-30 350
챗봇, 그리고 신 직업.. 어찌 생각하시나요. [4] lopez7 2018-09-05 347
인공지능으로 인간의 행동을 통제 [1] dlrjsanjswl 2021-02-11 342
챗봇 공부관련해서 질문드립니다. [6] 잘못된길 2017-08-16 337
입력 데이터 정규화 질문 드립니다. [2] 거북이 2019-10-23 332
깊은 바다님의 정체는 무엇입니까.. [2] 코딩하는기계 2017-10-20 330
가입 인사 겸 질문입니다. file [1] 초보개발자입니다 2020-01-06 328
구글 딥마인드 카드 게임 연구 file 깊은바다 2016-04-05 326