Deview 2016

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 선언하면 안된다.)