- 회원들이 추천해주신 좋은 글들을 따로 모아놓는 공간입니다.
- 추천글은 매주 자문단의 투표로 선정됩니다.
Date | 15/09/16 21:59:49 |
Name | Azurespace |
Subject | 스타트랙 신경망 |
미국의 유명 SF TV 시리즈인 스타 트렉에는 어떤 언어이든 상대방의 언어로 그대로 번역해 주는 통역기가 존재합니다. 현재 딥 러닝에서 대기업 삼대장을 뽑으라면 구글, 마이크로소프트, 바이두 정도를 들 수 있는데요. 이 중에서 마이크로소프트는 딥 러닝을 가장 빠르게 도입한 기업들 중 하나이기도 합니다. 세 기업의 공통점을 들자면 자체적으로 개발한 검색엔진을 운용하고 있다는 것인데요. 이들이 이러한 연구에 열을 올리는 것은 이미지 검색에 필요하기 때문이기도 했습니다. 제가 지금까지 소개한 딥 러닝 시스템들도 이미지와 관련된 것이었지요. 애초에 한 번은 역사의 뒤안길로 사라지다시피 했었던 딥 러닝이 다시 인공지능의 메인 필드로 다시 올라올 수 있었던 것도 이미지 인식에서의 성과 덕분이기도 했습니다. 그러나 최근 어텐션 테크닉과 노하우가 쌓이기 시작하면서 다른 분야에서도 딥 러닝은 기존의 휴리스틱 알고리즘들이 수십년에 걸쳐 쌓아온 성과를 큰 격차로 뒤엎어버리고 있습니다. 오늘 소개드릴 기술은 마이크로소프트의 연구 성과입니다. 마이크로소프트는 최근에 프로젝트 아담이라는 딥 러닝 프레임워크를 야심차게 예고하면서 적은 수의 머신으로 더 빠르게 딥 러닝을 할 수 있도록 하겠다는 포부를 밝히기도 했는데요. 이것도 기대하고 있습니다. 다음 영상은 지난 2012년에 당시 마이크로소프트 리서치의 치프 연구자인 Rick Rashid가 중국에서 발표한 것입니다. 가운데 화면을 보시면 그의 말이 실시간으로 텍스트로 변환되어 나타나고 있는 것을 보실 수 있습니다. 어떻게 딥 뉴럴 네트워크가 이러한 일을 가능하게 하는지를 설명하고 있습니다. 음성 인식 자체도 기존의 방법에서 크게 정확도를 높인 것입니다만, 진짜 마법은 6분에 일어납니다. 영문으로 출력되던 그의 말이 갑자기 중국어 텍스트로 번역되기 시작한 것이죠. 그리고 7분 30초에 두 번째 마법이 일어납니다. 컴퓨터가 "발표자의 목소리로 번역된 중국어를 말하기 시작합니다" 와우. 아, 마이크로소프트는 이후로도 계속 연구를 진행했고, 2014년에는 다음과 같은 영어-독일어 상호 번역 기술을 선보입니다. 이러한 서비스의 궁극적인 목표는 음성 인식 -> 기계 번역 -> 음성 합성 에 이르는 세 단계를 모두 딥 러닝으로 해버리는 것이겠지요. 요즘 기계 번역에서도 딥 러닝이 무서운 속도로 성과를 내고 있으니 조만간 볼 수 있을 것 같습니다.. 그렇게 되면 세상은 어떻게 변화할까요. 마이크로소프트는(그리고 구글은) 무너져 내렸다던 바벨탑을 다시 쌓아올릴 수 있을까요? 참고로 위의 실시간 번역 서비스는 현재 스카이프에 적용되어 베타 테스트 중입니다. 영어, 스페인어, 독일어, 표준중국어를 상호 번역할 수 있다고 하는군요. * 난커피가더좋아님에 의해서 자유 게시판으로부터 게시물 복사되었습니다 (2015-09-25 08:10) * 관리사유 : 추천게시판으로 복사합니다. 5
이 게시판에 등록된 Azurespace님의 최근 게시물
|
음.. 제가 알기로 기계번역에서 딥 러닝으로 최근에 가장 괄목할만한 성과를 내신 분이 뉴욕대의 조경현 교수님이신데요
이 분의 최근 연구자료들을 보면 네트워크 자체는 특정한 언어의 문법 구조에 의존해야 하는 형태로 만들어져 있지 않습니다.
참고 : https://drive.google.com/file/d/0B16RwCMQqrtdNUptOGtDeDhxZ0E/view
그리고 위에 언급한 회사들도 전세계에 서... 더 보기
이 분의 최근 연구자료들을 보면 네트워크 자체는 특정한 언어의 문법 구조에 의존해야 하는 형태로 만들어져 있지 않습니다.
참고 : https://drive.google.com/file/d/0B16RwCMQqrtdNUptOGtDeDhxZ0E/view
그리고 위에 언급한 회사들도 전세계에 서... 더 보기
음.. 제가 알기로 기계번역에서 딥 러닝으로 최근에 가장 괄목할만한 성과를 내신 분이 뉴욕대의 조경현 교수님이신데요
이 분의 최근 연구자료들을 보면 네트워크 자체는 특정한 언어의 문법 구조에 의존해야 하는 형태로 만들어져 있지 않습니다.
참고 : https://drive.google.com/file/d/0B16RwCMQqrtdNUptOGtDeDhxZ0E/view
그리고 위에 언급한 회사들도 전세계에 서비스를 해야 하기 때문에 그런 식으로 연구하지는 않을 것으로 보이고요.
다만 위 서비스에 현재 지원되는 언어들은 굴절어 또는 고립어라 단어를 분리해내기가 쉽고, 때문에 학습에 필요한 데이터를 비교적 쉽게 뽑아낼 수 있지 않나 하는 생각은 드네요.
아무래도 네트워크를 학습을 시키려면 많은 양의 데이터가 필요한데 사용인구가 정말로 적으면 이것도 썩 쉽지 않은 일이겠죠.
이 분의 최근 연구자료들을 보면 네트워크 자체는 특정한 언어의 문법 구조에 의존해야 하는 형태로 만들어져 있지 않습니다.
참고 : https://drive.google.com/file/d/0B16RwCMQqrtdNUptOGtDeDhxZ0E/view
그리고 위에 언급한 회사들도 전세계에 서비스를 해야 하기 때문에 그런 식으로 연구하지는 않을 것으로 보이고요.
다만 위 서비스에 현재 지원되는 언어들은 굴절어 또는 고립어라 단어를 분리해내기가 쉽고, 때문에 학습에 필요한 데이터를 비교적 쉽게 뽑아낼 수 있지 않나 하는 생각은 드네요.
아무래도 네트워크를 학습을 시키려면 많은 양의 데이터가 필요한데 사용인구가 정말로 적으면 이것도 썩 쉽지 않은 일이겠죠.
딥 러닝으로 구할 수 있는 것 중에 워드 벡터라는 것이 있는데요..
딥 네트워크에 어떤 언어로 된 문장을 쭈욱 넣어가면서 학습시켜서 만들게 됩니다.
학습이 끝난 후에 어떤 단어를 집어넣으면 N차원 공간에 매핑을 시켜주는데요.
그런데 이 wordvec이라는게 재미있는 속성을 가지고 있습니다.
결과값이 벡터라서 더하고 빼는 연산이 가능한데, 이게 기묘합니다.
다음과 같이 마치 단어의 의미를 아는 듯한 매핑이 나오거든요.
wordvec(여왕) - wordvec(여자) = wordvec(왕)
wordvec(런던) -... 더 보기
딥 네트워크에 어떤 언어로 된 문장을 쭈욱 넣어가면서 학습시켜서 만들게 됩니다.
학습이 끝난 후에 어떤 단어를 집어넣으면 N차원 공간에 매핑을 시켜주는데요.
그런데 이 wordvec이라는게 재미있는 속성을 가지고 있습니다.
결과값이 벡터라서 더하고 빼는 연산이 가능한데, 이게 기묘합니다.
다음과 같이 마치 단어의 의미를 아는 듯한 매핑이 나오거든요.
wordvec(여왕) - wordvec(여자) = wordvec(왕)
wordvec(런던) -... 더 보기
딥 러닝으로 구할 수 있는 것 중에 워드 벡터라는 것이 있는데요..
딥 네트워크에 어떤 언어로 된 문장을 쭈욱 넣어가면서 학습시켜서 만들게 됩니다.
학습이 끝난 후에 어떤 단어를 집어넣으면 N차원 공간에 매핑을 시켜주는데요.
그런데 이 wordvec이라는게 재미있는 속성을 가지고 있습니다.
결과값이 벡터라서 더하고 빼는 연산이 가능한데, 이게 기묘합니다.
다음과 같이 마치 단어의 의미를 아는 듯한 매핑이 나오거든요.
wordvec(여왕) - wordvec(여자) = wordvec(왕)
wordvec(런던) - wordvec(영국) = wordvec(서울) - wordvec(한국)
아니면 영어에서 is, are, were 등의 동일한 의미를 지니는 단어들은 벡터공간상의 거리가 매우 가깝다던지 하는 식으로요.
다시 말해서, 어떤 두 임의의 단어 사이에 유의어 사전과 같은 명시적인 레퍼런스 없이도, 매핑된 결과를 바탕으로 어떤 의미가 있는지 추론할 수 있는 셈입니다.
워드 벡터를 구하는 방법은 복잡해지니 혹시 필요하시다면 wordvec으로 구글에 검색해보시면 좋은 자료가 많을 겁니다.
아무튼 각 언어에서 똑같은 방법으로 word vector를 구할 수 있겠지요?
그러면 굳이 공통되는 어휘가 많이 있어야 할 필요가 없습니다. 의미가 같다는 것을 아는, 예를 들어서 \"왕\" 같은 단어는 어느 언어에나 있잖습니까? 그런 단어 몇 개만 뽑아내면 각 언어에서 대응되는 단어가 무엇인지 찾아내는 것이 가능하다는 얘깁니다. 벡터공간 내에서 상대적 위치가 동일하겠죠.
뭐... 그러나 꼭 그렇게 복잡한 과정을 거치지 않더라도, 애초에 전제부터 어폐가 있죠. 이 시대에 현존하는 언어 중에, 그리고 기계 번역을 할 만한 언어 중에서, 세계공용어인 영어나 프랑스어로의 번역 데이터가 없는 언어는 사실상 없거든요. 막 저기 아마존 밀림 속의 원시 부족이 사용하는 포합어 이런 거면 모르겠는데... 애초에 그쪽은 문자 표기가 가능한가부터 고민해야 할 문제고(...) 기계번역이 필요한 대상도 아니죠. 그 사람들이랑 대화할 사람이 연구자들밖에 없으니까.
그리고 교착어인가 굴절어인가는 결국 번역기가 내보내는 결과를 해석해서 문법에 맞게 출력하는 부분만 달라지면 되는 거라서 그것이 문제가 되지는 않을 거라는 게 제 생각입니다. 단지 네트워크 학습을 시킬 만한 데이터 세트가 충분히 존재하냐는 것이 진짜 문제죠.
딥 네트워크에 어떤 언어로 된 문장을 쭈욱 넣어가면서 학습시켜서 만들게 됩니다.
학습이 끝난 후에 어떤 단어를 집어넣으면 N차원 공간에 매핑을 시켜주는데요.
그런데 이 wordvec이라는게 재미있는 속성을 가지고 있습니다.
결과값이 벡터라서 더하고 빼는 연산이 가능한데, 이게 기묘합니다.
다음과 같이 마치 단어의 의미를 아는 듯한 매핑이 나오거든요.
wordvec(여왕) - wordvec(여자) = wordvec(왕)
wordvec(런던) - wordvec(영국) = wordvec(서울) - wordvec(한국)
아니면 영어에서 is, are, were 등의 동일한 의미를 지니는 단어들은 벡터공간상의 거리가 매우 가깝다던지 하는 식으로요.
다시 말해서, 어떤 두 임의의 단어 사이에 유의어 사전과 같은 명시적인 레퍼런스 없이도, 매핑된 결과를 바탕으로 어떤 의미가 있는지 추론할 수 있는 셈입니다.
워드 벡터를 구하는 방법은 복잡해지니 혹시 필요하시다면 wordvec으로 구글에 검색해보시면 좋은 자료가 많을 겁니다.
아무튼 각 언어에서 똑같은 방법으로 word vector를 구할 수 있겠지요?
그러면 굳이 공통되는 어휘가 많이 있어야 할 필요가 없습니다. 의미가 같다는 것을 아는, 예를 들어서 \"왕\" 같은 단어는 어느 언어에나 있잖습니까? 그런 단어 몇 개만 뽑아내면 각 언어에서 대응되는 단어가 무엇인지 찾아내는 것이 가능하다는 얘깁니다. 벡터공간 내에서 상대적 위치가 동일하겠죠.
뭐... 그러나 꼭 그렇게 복잡한 과정을 거치지 않더라도, 애초에 전제부터 어폐가 있죠. 이 시대에 현존하는 언어 중에, 그리고 기계 번역을 할 만한 언어 중에서, 세계공용어인 영어나 프랑스어로의 번역 데이터가 없는 언어는 사실상 없거든요. 막 저기 아마존 밀림 속의 원시 부족이 사용하는 포합어 이런 거면 모르겠는데... 애초에 그쪽은 문자 표기가 가능한가부터 고민해야 할 문제고(...) 기계번역이 필요한 대상도 아니죠. 그 사람들이랑 대화할 사람이 연구자들밖에 없으니까.
그리고 교착어인가 굴절어인가는 결국 번역기가 내보내는 결과를 해석해서 문법에 맞게 출력하는 부분만 달라지면 되는 거라서 그것이 문제가 되지는 않을 거라는 게 제 생각입니다. 단지 네트워크 학습을 시킬 만한 데이터 세트가 충분히 존재하냐는 것이 진짜 문제죠.
목록 |
|