728x90
반응형

데이터 사이언스(Data Science) 38

Trnasformer Network, 트랜스포머 네트워크란?

구글에서 발표한 딥러닝 아키텍쳐다. 말 그대로 아키텍쳐이다. 얘 스스로는 아무것도 아니고 어떻게 이용하느냐에 따라 달라진다. 근데 자연어처리(NLP)측면에서는 트랜스포머의 등장이 획기적인 성능 향상을 가져왔다고 볼 수 있다. **하지만 트랜스포머의 이해를 위해서는 S2S, Sequence to Sequence의 개념을 먼저 아는 것이 필요하다. ++ Attention 메커니즘에 관한 이해도 필요하다. Attention, 어텐션 메커니즘 Sequence to Sequence (S2S) 시퀀스 투 시퀀스란? 안다면 이제부터 설명해보겠다. 기존의 Seq to Seq 모델의 한계를 Attention이 보정해주었다. RNN의 한계를 보정한 것인데..? RNN이 아닌 Attention을 활용할 수 있는 새로운 네트..

Attention, 어텐션 메커니즘

비슷한 문맥에 비슷한 단어는 모여있다를 극복하기 위한 방법 ( 꼭 그런 것은 아니지만서도 기본적인...~~) 즉, 순서(Sequence)를 파악하고 가중치를 그에 따라 조정하여 자연어를 처리하기 위한 메커니즘 S2S를 모르면 읽고 가야함. Sequence to Sequence (S2S) 시퀀스 투 시퀀스란? Word Attention이란 무엇인가? 딥러넹 모델이 특정 벡터에 주목(attetion)하게 만들어 모델의 성능을 높이는 기법임. 그렇다면 왜 특정 벡터에 주목하게 만드는 것이 성능을 높여주느냐?? 이를 알려면 어텐션이 나온 배경부터 이해해야 한다. 기계 번역을 위한 S2S(Seq 2 Seq) 모델부터 시작되었는데 Sequence to Sequence (S2S) 시퀀스 투 시퀀스란? 위는 A,B,C..

자연어 처리에서의 용어

원서 논문을 읽다보니까 해석해도 제대로 되는 것이 없어서 여러 가지를 참고해서 사전을 만들기로 맘먹었다. 중요한 내용은 링크를 걸어 추가 설명을 덧붙이겠다. Ctrl+F로 영문 또는 국문으로 찾아보자 pre-process -> 전처리 supervised learning -> 지도 학습 unsupervised learning -> 비지도 학습 Semantic -> 의미적~~ Syntactic -> 문법적~~ Word Anology -> 단어 유추 Prediction -> 예측 ++예측과 유추가 비슷해보이긴 한다. binary classification -> 이진 분류 이거 아님 저거 2가지로 분류하는 방식이다. Dimension reduction -> 차원 축소 Term-Documnet Matrix -> ..

Sequence to Sequence (S2S) 시퀀스 투 시퀀스란?

W2V을 알고있다면 word가 vector로 바뀌는 것이 W2V임을 알 것이다. 즉 S2S는 다시 말해서 Sequence를 다시 Sequence로 나오게 하는 것이다. 그렇다면 입력된 시퀀스와 출력된 시퀀스가 같냐???? 그것은 아니다.(같으면 안하지) 2개의 RNN을 사용한 모델이다. ++입력된 시퀀스와 출력된 시퀀스의 길이가 다를 수 있는데 그것을 2개의 RNN 모델을 통한 최종 모델이 나왔다. 최종 목적은 시퀀스인데 다른 도메인(domain)에서도 쓸 수 있는 시퀀스를 얻어내는 것이다. S2S가 쓰이는 대표적인 예는 챗봇, 기계 번역, 내용 요약 등이 있다. "language translation, image captioning, conversational models and text summari..

RNN, Recurrent Neural Network; 순환 신경망이란?

21.09.28 RNN 수식들 내용 업데이트 ** RNN, 재귀 신경망(Recursive Neural Network)이 아니라 여기선 순환이다!! 우선 자연어처리에서 많이 쓰는 신경망모델이다. 가장 기본적인 시퀀스 모델로 S2S와 깊은 연관이 있다. **시퀀스 모델이란 입력에 순서가 있다는 말. 일반적인 Neural Network에서는 input의 순서를 다루지 못하기 때문임. 주로 번역에 기여하는 바가 많다. **LSTM이나 GRU 또한 근본적으로 RNN기반이라고 볼 수 있다. RNN의 구조를 그림으로 보자 요렇게 생겼다. (좌 우 같은 그림이다) 저 A를 RNN에서는 Cell이라고 부르는데 저기에서는 각 시점(time step)에서 바로 이전 시점에서 Cell에서 계산된 값을 사용하여 지금 시점에 입..

딥러닝 챗봇 만들기 - 2 (파이썬 IDE, 개발환경만들기)

우선 파이썬의 개발환경을 사용하며 .. 책에 있는 그대로 따라가겠다. (난 WINDOW 사용자) 책에서 개발환경에서 파이썬, MySQL을 로컬에 설치해 직접 사용한다고 써있다. 파이썬 버전 3.x 를 쓰며 2.x는 지원을 곧 종료하므로 쓰지 않는다. 파이썬의 가상 환경 관리를 위해서 (형상 관리) Anaconda를 이용한다. (따로 글 써야겠다..) 파워셸을 실행시킨다. conda list를 prompt에 입력하면 설치된 패키지가 이렇게 나온다 (나는 이미 깔아서 패키지가 이렇게 많은갑다) 파이썬 프로젝트에는 버전관리가 중요하므로 아나콘다로 가상 환경을 만들어준다. * 가상 환경 생성 conda create -n python= ex) conda create -n chatbot python=3.7 이라고 ..

딥러닝 챗봇 만들기 - 1(챗봇의 정의, 이해)

책을 활용해서 진짜 챗봇을 만들어보기로 하였다. 책의 처음 부분인 챗봇의 이해부터 해야한다고 한다. 챗봇이란 무엇인지, 왜 필요한지, 미래에 어떨 것인지 알아보자 챗봇이란 chat-bot으로 chatter 와 robot의 합성어이다. 즉, 대화하는 로봇이다. 대화는 음성 또는 텍스트로 이루어질 수 있으며 챗봇도 음성 또는 텍스트로 대답을 할 수 있다. ++ 물론 위와 같이 실체는 없겠지..만 그냥 이해를 위해서 로봇 하나 넣어놨다. 미래에는 고객 응대 서비스같은 경우 80%정도 대체할 수 있는 정도로 발전할 것이라는 추측을 하고 있다. 또한 로봇이기 때문에 24시간 응대가 가능해 고객들은 더욱 편한 환경을 가지게 될 것이다. 하지만 우리가 챗봇을 만든다면 특정 분야에 치중하는 챗봇을 만들 수 밖에 없을 ..

Word2Vec, Word to vector, 워드투벡터란?

엄청나게 유용하면서도 별로인 W2V에 대해서 알아보도록 합시다. 영어를 왜 중간에 많이 넣었냐면.. 실무에선 영어쓰니까..? 우리가 강대국이었으면.. 한글자료가 훨 많았을텐데 흐규흐규 출처: Efficient Estimation of Word Representations in Vector Space(Tomas Mikolov Kai Chen Greg Corrado Jeffrey Dean ) wikidocs.net/22660 이분의 글도 참고해서 봅시다. 정의 Word to Vec 이라는 설명에 걸맞게 뜻도 그렇다. 단어를 바로 벡터로 변환해준다는 이야기다. (Word to Vector) 왜?? 굳이 단어를 벡터로 바꿔야해? -> 벡터로 바꾸어야 유사도 같은 계산이 가능함(분산 표현 시 가능) 엥?? 그냥 ..

[DL] 퍼셉트론(Perceptron)

'밑바닥 부터 시작하는 딥러닝' 에서 공부한 것을 바탕으로 정리해놓은 https://excelsior-cjh.tistory.com/169 이 분이 정리해놓았다. 그냥 책이랑 같다. 나는 내 식으로 다시 정리해보려고 한다. 이름을 왜 퍼셉트론으로 지었는지는 아직도 의문이다. 아무튼 다시 이해해보자 퍼셉트론은 0과 1을 표현할 수 있다. 기본적으로 2가지 정보를 이용해서 가중치를 적용해 0을 출력할지 1을 출력할지 결정한다. 여기서 편향은 출력에 지대한 영향을 끼치는 요소로서 퍼셉트론이 활성화되는 정도를 알아내는 척도가 된다. AND, NAND, OR의 논리회로를 구현할 수 있지만 퍼셉트론 자신 혼자서는 XOR을 구현하지 못한다. 하지만 기존의 논리회로를 이용해서 다시 출력된 값에 대해서 퍼셉트론을 적용하면..

[Python] DataFrame에서 열 추가,삭제

https://blog.naver.com/rising_n_falling/221631637822 Pandas - DataFrame에서 열 삭제 및 추가 안녕하세요. '라이징n폴링'입니다.지난 글 'Pandas - DataFrame에서 행 추가/삭제 방법&... blog.naver.com 위의 블로그를 매일 방문해도 되지만 난 밑에 있는 것만 알면 되기에 괜찮다. import 하고 건드려야한다. ㅎㅎ 사실 열을 별로 건드리는 경우가 많진 않을 것 같지만 drop()을 쓴다. drop(['이름1' , '이름2' ] , axis = 1 , ....) 이런 식으로 쓴다. axis = 1이라고 해야 삭제를 행으로 할지 열으로 할지 결정하는 것이다. 1인 경우 열로 결정한다. 추가할 때는 assign()를 쓴다. a..

728x90
반응형