2016. 10. 24. 10:09ㆍ개발일기/Seminar
올해로 9번째를 맞이하는 naver deview 행사.
이번에는 놀랍게도 이해진 의장이 처음 인사말을 해서 놀랐다. (실제 얼굴 처음 봄) ㅋㅋ
그 다음으로 이어지는 송창현 CTO key note
Deview 1일차
1. key note
네이버에서 밀고 있는 서비스
- papago : 번역 앱. 뉴럴 알고리즘 적용.
- WHALE : 네이버 자체 브라우저. UI적으로 신기한 것 같다. 이미지도 번역해 준다는데??
- 그리고 인공지능 비서 서비스 같은 프로젝트를 진행 중인 것 같다. Amica 라고 부르는 것 같은데 (아무래도 네이버도 알파고 영향을 받은 듯)
- 자동차 자율 주행 기술.
- 네이버에서 만든 첫번째 로봇 M1. 해당 로봇을 이용해서 실내 지도를 만들 수 있다고 한다.
- 오늘 키노트에서 발표한 모든 부분에서 딥러닝 기술이 녹아져 있는 것 같다. (역시 데이터가 깡패임..)
키노트만 봐서는 엄청 부럽긴한데.... 실제 써봐야 알 듯하다.. 작년에도 라이브 검색 밀었던 거 같은데 쏙 들어간거 보면...
어쨌든 이런 기술들을 연구하고 있다는 점은 엄청 부럽긴 하다. 아래 사진은 쉬는 시간에 잠깐 가서 본 네이버 M1 로봇
2. 챗봇 개발을 위한 네이버 랩스 API
- AMICA - Natural Language 기반 인터페이스. 메신저에서 가장 적합한 인터페이스는 대화이다.
- 하지만 일반 개발자들이 자연어를 처리하기에는 너무 시간이 오래 걸린다.
- AMICA.ai가 이러한 자연어 처리를 도와주는 역할을 함.
- built-in entity : 장소, 시간, 인명 등 25개의 사전을 제공. (중의성은 보장해 주는 건가??)
- built-in intent : yes,no,cancel 등 7개의 예상 intent 제공.
- 그 밖의 유니크한 entity는 사용자가 직접 입력해야 함. ( 검색 엔진이랑 똑같네.. )
- 대화의 context에 관련한 history 정보는 따로 제공하지 않는다.
- 그냥 단순히 자연어 처리쪽만 제공하는 듯.. 오히려 더 불편할 수도 있을 것 같음.
- 어떻게 개발했는지가 궁금했는데, 그냥 AMICA 홍보 section이었는듯 싶다.
- 아래의 그림 처럼 챗봇 대화가 이루어진다고 한다. (우리 회사도 챗봇 때문에 지금 정신 없는데...)
3. 실내공기질 관리 IoT 제품 , Awair의 실리콘밸리 공략기
- Iot 제품을 개발할 때에 없어서는 안 될 요소를 아래와 같이 설명한다.
- Iot 제품은 wifi 연결에 대한 신뢰성이 있어야 한다. (조금의 disconnection만 있어도 사용자는 외면한다.)
- App이 없어도 제품 그 자체로 독립적으로 사용할 수 있어야 한다.
- 디자인이 정말 중요하다.
- 포장도 제품이다.
- 센서 제품에 대한 완성도가 없다면 사용자는 센서가 주는 수치를 절대 믿지 않는다.
- 좁은 지역일 경우에는 무수히 많은 wifi list가 존재하며 이에 대한 처리가 반드시 필요하다.
- 다른 디바이스에 연동될 수 있어야 한다.
4. 통역하는 앵무새 파파고 이야기
- 이미지를 활용한 중의어 문제 해결 : 이미지를 선택해서 의미를 선택할 수 있도록 UI 구성
- 실시간 번역이라 데이터 사용량이 많을 것이라 생각되지만 그리 많지는 않음 -> 실시간 번역 옵션화로 데이터 사용량 걱정거리 해결.
- 번역 모델에 관한 이야기는 전혀 없네 ㅋ.. 그냥 앱소개 위주..
- 아마 딥러닝은 deview 2차에서 집중적으로 나타날 듯 싶다.
Deview 2일차
1. 딥러닝을 이용한 지역 컨텍스트 검색.
- 사람이 붐빌 줄 알았는데 생각보다 한산했다. 비와서 그런가?
- 사용자가 어떤 장소를 검색하려고 할 때 해당하는 장소를 이해해서 원하는 장소를 찾아줄 수 있는 방법 연구
- ex) 3만원 가지고 갈 수 있는 여행지 추천.
- 텍스트 마이닝이 아니라 딥러닝을 활용해서 적용해 봄 ( CNN )
- 텍스트 마이닝 방식 -> 기존의 테마 사전을 만든 후 패턴을 적용해서 찾는 방법. 사전 업데이트가 필요하기 때문에 번거로움.
- CNN에 사진 대신 여행지 블로그 문장을 집어 넣음. ( CNN + LSTM)
- Temporal ConvNet Model - 문자 단위(character)로 입력이 들어감. 언어 독립적 모델. 문법 등을 신경쓸 필요가 없다.
- 문자 단위면 입력 벡터 사이즈는 어떻게 고정하는거지??? 나중에 논문을 볼 필요가 있을 듯 함. 정확히 이해 못함.
- Overfitting 문제 해결 위해 : Dropout(0.5)
- 학습 데이터를 늘리기 위해 : 영어 기준 처음과 끝 2글자를 남기고 순서 변경 ex) 캠릿브지 대학의 연결구과
- LSTM을 이용해서 새로운 지역 컨텍스트 발굴
- LSTM : RNN 기반한 모델.
- Bidirectional LSTM을 사용 : forward layer + backward layer
2. 딥러닝을 활용한 이미지 검색 : 포토 요약과 타임 라인
- document text 분류를 해서 대표 키워드를 찾고 CNN으로 이미지를 분류해서 해당 document text와 연결 시켜주는 구조 인 것 같다.
- VGGNET16 모델의 FC7 Layer 사용.
- multiclass SVM 사용.
- 랭킹 적용 ( 어떤 컨텐츠를 먼저 보여줄 것인가?)
- 식당 같은 경우에는 다출처 우선
- 미용실은 시술 사진 우선
- 명소는 유사 명소
3. 딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
- 강화학습(reinforcement learning)
- 시행 착오로부터 배운다.
- 정답이 없기 때문에 학습 결과는 다양할 수 있다.
- 쿠키(agent)가 목적에 맞는 행동을 했을 경우 양수의 reward를 주고, 그렇지 않을 경우에는 음수의 reward를 준다.
- agent가 action을 결정하는 방법을 학습하고 각 action의 결과는 다음 행동에 영향을 준다.
- Deep-Q-Netword (2013)
- state(S)에서 어떤 행동(A)을 했을 때 기대되는 행동(Q)
- 쿠키런에서 Q는 젤리를 먹은 점수가 된다.
- 점수가 가장 높게 나타낼 수 있는 action이 정답이 되는 셈.
- Double Q-Learning (2015)
- 미래가치 Q가 낙관적 예측 또는 발산을 막기 위한 논문
- Q 값이 너무 커지는 것을 막도록 학습하는 것.
- Dueling Netword
- Q 값을 정확하게 예측할 필요가 없다.
- 값을 예측하는 것보다 기준을 두고 기준보다 얼마나 떨어져 있는지를 확인한다.
- 기존 Double Q-Learning에 V라는 기준 값을 추가하는 것 같다.
- 만약 강화에 계속 실패한다면??
- Hyper parameter tuning
- 뉴럴 네트워크 바꾸기
- Optimizer 바꾸기
- reward 식 바꾸기
- 너무 많은 hyper parameter는 비추한다.
- 고정 시킬 수 있는 변수들은 고정시켜 놓고 건드리지 말자.
- 계속적인 실험만이 답이다.
- debugging
- pretrained model
- 모든 실험의 weight 를 저장하고 비슷한 실험일 경우에는 해당 weight를 사용해서 학습 속도를 줄인다.
- ensemble method
- 각각의 모델에 대해 각각 실험을 해서 추합한 결과를 결과치로 내는 방법.
- tensorflow에서는 같은 이름의 node를 하나의 그래프에 저장할 수 없다. 또한 한 세션에서는 하나의 그래프만 그릴 수 있다.
- 그럼 어떻게??? 여러 개 세션을 둔 후 각각의 그래프를 둬서 앙상블 방법을 만들 수가 있다. (with session으로 session 선언하면 안된다.)