바닐라 RNN은 길이가 길어지면 맨 앞쪽 내용이 점점 희석되는 단점이 있다. 이런 단점을 해결하기 위해 나온 모델이 LSTM / GRU 모델이다. 두 모델의 성능은 비슷하다고 하지만, GRU가 LSTM보다 연산 수가 적다고 한다. RNN의 원리는 직관적으로 이해가 가능하지만, LSTM 내부 구조는 직관적으로 복잡하기에 어떻게 사용하는지 정도만 알고 갔는데, 내부적으로 어떤 의미가 있는지 나름대로 해석하고 부여하여 정리해보고자 한다. https://wikidocs.net/60762 해당 링크의 설명을 참고하여 나름대로 의미를 부여해 보겠다. LSTM의 내부구조는 위의 그림과 같다. RNN과 다른점은 Cell state라는 것을 가지게 되는데, Cell state는 어떤 어떤 정보를 기억할 지 저장해 놓은 ..
딥러닝 분야를 접하면 반드시 접하게 되는 CNN, RNN이 있다. 비전과 자연어의 기본 모델이라, 어떻게 작동이 되는지 처음부터 잘 알아두면 큰 틀의 과정을 잘 이해할 수 있다고 생각된다. 여기서는 RNN에 대해 이야기 해보려고 한다. 어떻게 사용하는지 사용법을 알고싶다면, 빠르게 다른 포스팅을 찾는게 더 좋을 수 있다. 정말 어떻게 계산되는지 설명해보고자 한다. RNN의 이론을 보면 이와같은 이미지를 안볼수가 없다. 대부분 이런 이미지를 통해 RNN이라 설명한다. 하지만, 개인적으로 너무 설명이 생략된 것이 많다고 생각한다. 개인적으로 이런 그림이 보다 직관적이라 생각한다. A,B,C,D는 단어 embedding (vector)이다. 하지만, 보지 못한 것이 하나 있다. 맨 왼쪽 '0' 이라는 노드....
토치를 사용하다 보면 가장 많이 사용하게 되는게 tensor()이다. 그런데, 공부하다 보니 tensor()가 있고, Tensor()가 있는데 이 둘의 차이는 뭘까...?? 두 함수의 차이를 살펴보고 나름대로 정리를 해보려한다. https://stackoverflow.com/questions/51911749/what-is-the-difference-between-torch-tensor-and-torch-tensor What is the difference between torch.tensor and torch.Tensor? Since version 0.4.0, it is possible to use torch.tensor and torch.Tensor What is the difference? What ..
tensor뿐만 아니라 pandas에서 concat을 할때 어떤식으로 진행할지를 결정하게 될때 사용하는게 dim 이라는 파라미터이다. 예제로 봐보자. x,y,z를 stack하는 코드이다. stack을 진행할때, 어떤 차원을 기준으로 stack을 할지 명시해줘야한다. defalut는 0으로 dim = 0이라는 것과 같은 의미이다. dim = 0일때 결과를 살펴보면, 행으로 stack한 것을 볼 수 있다. 반대로, dim= 1 일때를 살펴보면, '열'로 stack을 진행한 것을 볼 수 있다. 추가적으로 설명해보자면, torch.Size([A,B,C,D,E])와 같은 5차원의 tensor가 존재할 경우, A부터 0, B는 1 , C는 2, D는 3, E는 4를 뜻한다. 이걸 알고 원하는 기준으로 stack을 ..
pytorch tensor를 이용하다보면, a,b,c tensor를 하나로 합치는 경우가 필요하다. 그때 사용하는 것은 concat, stack 함수를 이용해서 사용하면 될텐데... 조금의 차이가 존재한다. 예시를 통해 정리해보고자 한다. 1. concat - pandas를 자주 사용하는 개발자들은 pd.concat을 종종 사용할 것이다. 이때 concat이 torch에도 같다고 생각하면 된다. 한마디로 정리하자면, concat은 기존 shape을 유지한다. 예제를 보자. x = [[1,2], [3,4]] / y = [[4,5],[6,7]] 를 선언하였다. shape은 (2,2) 이다. shape을 잘 기억하길 바란다. 단순 concat을 진행하게 되면, defalut = dim 0 이므로 세번째 처럼 ..
딥러닝을 처음 접하면 vision, NLP 분야를 접하게 된다. 가장 익숙하면서 가장 인기가 많은 분야이다. 하지만, 이 외 분야인 오디오, 생성, 그래프 등등.. 많은 분야가 존재하며 딥러닝을 공부하다 보면 어느순간 다양한 분야를 접해야만 할 것이다. 그 중 2개의 그래프 관련 대회를 참여하면서, 그래프(GNN)에 대한 관심이 많아졌다. 그래프 관련 라이브러리도 다양하게 존재한다. 그 중 필자는 DGL 라이브러리를 사용하여 그래프 관련 task를 진행하였다. DGL은 https://docs.dgl.ai/ 해당 사이트를 통해 여러 example을 제공하고 있고, 필자도 해당 사이드의 설명을 보고 처음에 공부하였지만, 점점 설명이 생략되고 이론적으로는 이해하겠지만, 실질적 코드로는 어떻게 짜여지고, 구동되..
추천 대회를 참여하면서, Neural Collaborative Filtering 모델을 경험했고, 해당 모델은 구조,내용상 어렵지 않아 논문을 발번역후 필자의 생각을 정리해보고자 한다. 논문 : https://arxiv.org/pdf/1708.05031.pdf [서론] 최근 몇 년 동안, 심층 신경망은 음성 인식, 컴퓨터 비전 및 자연어 처리에서 엄청난 성공을 거두었다. 그러나 추천 시스템에 대한 심층 신경망의 탐색은 상대적으로 연구가 덜 되었다. 본 연구에서, 우리는 implicit 피드백을 기반으로 추천의 핵심 문제 (협업 필터링)를 해결하기 위해 신경망을 기반으로 한 기술을 개발하려고 노력한다.최근의 일부 연구는 추천을 위해 딥 러닝을 사용했지만, 주로 아이템의 텍스트 설명이나 음악의 음악 특징과 ..
늘 항상 고민인게 있다. 바로 피쳐를 어떻게 선택/삭제할 것인가이다. 어떤 대회는 아주 적은 피쳐로 점수가 높아지는 대회가 있는 반면, 피쳐가 다양해야 높은 점수를 얻을 수 있는 대회도 존재한다. 즉, 피쳐가 많고 적고의 답은 없는것 같다. 그중 피쳐를 삭제하고자 할때 개인적으로 X와 Y의 상관관계를 보고 시작한다. 그러다 보면.. 반드시 다중 공선성이 존재하는 피쳐가 존재하는 것을 볼 수 있을것이다. 그럼 다중공선성이 존재하는 피쳐는 어떻게 해야할까? 놔둬야하나? 지워야 하나? 늘 고민이다.. 고민을 하던 와중 이 글을 보고 하나 배웠다. https://blog.pabii.co.kr/multicollinearity-famous-but-stupid/ 다중공선성과 Random Forest에 대한 "업계 유..
- Total
- Today
- Yesterday
- DeepLearning
- Tree
- 입력
- boosting
- java
- 깃
- GNN
- github
- 정리
- 오류
- GPU
- Flask
- docker
- 뜯어보기
- torch
- CNN
- 입출력
- DT
- 초보자
- GIT
- 도커
- 딥러닝
- 계산
- 파이썬
- python
- gbm
- 자바
- 삭제
- 설치
- 이미지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |