레플리
글 수 220


고등학교에서 논문을 작성하고 있는데, 처음 인공지능으로 해결할 목표를 "성별, 나이등의 사람별 속성들을 고려해서 어느 특정 분포를 만족하도록 자리를 배치하기"로 정했습니다. 분포라고 하면, 나이가 골고루 분포되도록 또는 키를 고려한다면 뒤쪽에는 키큰사람이 앉도록 하는 등 입니다. 일단 목표를 잡아두고 신경망을 공부하기 시작하고, 일반적인 Feedforward 네트워크와 역전파 까지 배웠습니다. 그러고 나니, 일반적인 네트워크로는 이 문제를 해결할 수 없을 것 같다고 생각했습니다. 그래서 순환 신경망을 공부하고 있는데 이렇게 하면 해결 가능 할까요?

 

일단, 입력 시퀸스를 다음과 같이 정합니다.

 

사람마다의 정보를 담은 백터를 다음과 같이 정합니다.

v = (성별, 나이)

이때, 성별은 0은 남자, 1은 여자 로 정하고 나이는 최대 나이 범위를 30으로 잡고 이를 0과 1 범위로 표현합니다. 즉, 0.5는 15살을 의미합니다.

 

출력 시퀸스는 다음과 같습니다.

 

out = (0, 0, 0, 0, ..., j, 0, 0, ..., k, 0, 0, ..., 0)

예를 들어, j행, k열의 크기의 자리가 있으면 out 백터의 크기는 j + k가 되며 두개의 one-hot 백터를 붙여놓은 형태가 될것입니다.

 

지금까지 배운 내용으로만 판단하면, 첫번째 입력으로 인해 자리가 하나 배정되면 은닉층의 상태값이 이후 시간에 따라 전달 앞에서의 판단을 바탕으로 충분히 자리가 겹치지 않도록, 분포를 고려해서 앉을 수 있을것 같습니다.

 

그러나, 한 입력 시퀸스에 대해 나올 수 있는 유효한 자리 배치가 굉장히 많습니다. 그래서 비용함수를(Loss함수? Cost 함수?) 분포가 잘 되면 될수록 0에 가까워지는 함수를 선택하면 어떨까 생각했는데 이는 미분 자체가 매우 힘들것 같습니다.

 

아직까지 구체적이지 못하고 추상적으로만 구현 방법을 위와같이 생각중에 있습니다. 충고나 조언 부탁드립니다. 아니면 읽어볼만한 글이라던가 책이라도 감사합니다! (이제까지 약 한달 반 동안 혼자서 인터넷으로만 공부하다보니 주변에 물어볼 사람도 없고해서... 이렇게 질문 글 올려봅니다.)

엮인글 :

깊은바다

2017.06.08 03:06:46
*.68.247.188

추천
1
비추천
0

안녕하세요. 고등학교 때 논문을 쓴다고 하니 놀랍네요~

 

제가 볼 때는 순환신경망도 어울리지 않는 방법인 것 같습니다. 만약 입력이 100개이면 100만큼 이전 입력의 시퀀스를 고려해야 하는데 현재 RNN은 그렇게 긴 순서를 학습하기 힘듭니다. 이런 경우 입력에 현재 자리배치 정보도 같이 넣어서 피드포워드 신경망을 사용하는게 더 좋을 것 같습니다.

 

그런데 피드포워드 신경망을 사용하려면 입력과 출력의 데이터셋이 있고 이를 학습시켜야 합니다. 그러기 위해서는 성별, 나이, 자리배치의 입력으로 자리의 위치를 나타내는 출력의 집합을 우선 만들어야 합니다. 그런데 말씀하셨다시피 같은 입력에 대해서 나올 수 있는 출력이 너무 많습니다. 예를 들어, 자리가 모두 비워져 있는 상태라면 어느 곳이라도 앉을 수 있으니까요.

 

제가 생각할때는 이런 문제는 신경망보다는 K-means 같은 클러스터링 같은 방법이 더 어울리는 것 같은데요. 성별, 나이, 키 같은 피처들로 구성된 데이터를 비슷한 클래스로 분류하고 그 다음 같은 클래스에 속하는 사람들을 근처에 앉게 별도로 프로그램을 작성하는게 어떨까요.

 

클러스터링은 비지도학습이라 결과값이 있는 레이블된 학습 데이터가 필요없다는 장점이 있습니다. 신경망을 써서 비슷한 클래스를 분류할 수도 있는데 이럴 경우 <(성별, 나이, 키) -> (클래스)>로 된 데이터가 있어야 합니다. 이런 데이터를 구할 수 없다면 직접 만들어야 하는데 그건 좀 비효율적인 것 같아요.

 

저도 많이 아는게 없어서 도움이 되었는지 모르겠네요^^;

RedLaboratory

2017.06.09 23:25:39
*.7.14.115

일단은 논문을 마무리 하기 위해서 자리배치가 아닌 쉬운 문제로 마감하려고 합니다. 하지만 이전부터 배우고 싶었던 분야라 논문을 마감하고 나서도 계속해서 배워보고 싶네요!

RNN이 별로 라면 LSTM은 괜찮을까요? 장기기억이 가능하니 자리 배치도 가능치 않을까요?

깊은바다

2017.06.20 05:30:41
*.68.247.188

답변이 늦어 죄송합니다. 지금 댓글을 봤네요^^;

요즘은 보통 RNN에 LSTM을 포함해서 사용하는데 역시 이 문제에서는 적합하지 않을 것 같아요. 지금처럼 인공지능에 꾸준히 관심을 갖고 있으면 앞으로도 잘 해내실 거라고 믿습니다 ㅎㅎ

List of Articles
제목 글쓴이 날짜 조회 수sort
카톡 대화를 학습하는 AI 아바타 챗봇 - 레플리 file 깊은바다 2024-01-17 306
안녕하세요 챗봇 관련해서 질문있습니다. [3] 된장찌개 2020-01-02 232
안녕하세요. 사지방컴입니다. 정말 오랜만에 글 작성합니다. [2] 사지방컴 2019-12-19 231
사지방컴입니다. 신경망 라이브러리 깃헙링크입니다. [1] 사지방컴 2020-01-01 224
MS, AI 채팅봇 개발도구 공개 깊은바다 2016-04-01 223
딥러닝에 대한 질문드려용 [1] 병쥐 2021-05-17 222
감성 AI 챗봇 문의드립니다. [2] 아임둥 2020-09-06 222
ai(인공지능)개발자 찾습니다 바요 2017-08-04 220
영화 패신저스의 대화 인터페이스 깊은바다 2018-10-03 219
경사하강법 질문있습니다! [3] 평범한공대생 2020-04-29 216
(주)레플리에서 일상대화 AI에 도전하실 분을 찾습니다 깊은바다 2023-01-19 210
데이터 종류에 대해서 궁금합니다. [2] 노력하는돌 2021-03-22 204
안녕하세요 seq2seq에 대한 질문 있습니다... [2] jjdh 2018-05-31 203
[질문] Mnist가 아닌 제가 가진 이미지셋으로 GAN 구현 중 질문 드립니다 file [2] 하얀천사 2018-10-31 201
깊은바다님께 깊은 자문을 구하고싶습니다. [2] wcchoi95 2017-11-29 199
딥러닝을 이용한 사운드 생성 관련 질문 [2] NeuroWhAI 2019-02-03 198