반응형

tutorial 54

PyTorch를 이용한 NLP 튜토리얼, Part 3: Recurrent Neural Network와 LSTM 모델

Neural network를 위한 나의 첫 framework으로 PyTorch를 선택해서 알아가고 있다. PyTorch documentation의 tutorial 부분만 차근 차근 보고 있는데, 생각보다 내용이 좋다. 단순히 자기네 framework 사용법 뿐만이 아니라 deep learning의 여러 전반적인 기초에 대해서 잘 설명해주고 있다. 그 중에서 Beginner Tutorial 섹션의 "Deep Learning for NLP with Pytorch" 튜토리얼을 우리 말로 옮겨보았다. 세 번째 번역 부분은 recurrent neural network의 개념을 소개하고 NLP에서의 활용으로 LSTM 모델을 구현해본다. Exercise까지 해보려고 했으나 발버둥만 남았다. 꼭 업데이트 하리... 수..

Machine Learning 2018.04.05

PyTorch를 이용한 NLP 튜토리얼, Part 2: Word Embedding

Neural network를 위한 나의 첫 framework으로 PyTorch를 선택해서 알아가고 있다. PyTorch documentation의 tutorial 부분만 차근 차근 보고 있는데, 생각보다 내용이 좋다. 단순히 자기네 framework 사용법 뿐만이 아니라 deep learning의 여러 전반적인 기초에 대해서 잘 설명해주고 있다. 그 중에서 Beginner Tutorial 섹션의 "Deep Learning for NLP with Pytorch" 튜토리얼을 우리 말로 옮겨보았다. 두 번째 번역 부분은 NLP의 첫 발걸음으로 word embedding을 이용한 N-gram language modeling을 직접 해본다. 수식이 깨지는 등의 문제가 있는 경우 Github을 통해 볼 수도 있다...

Machine Learning 2018.03.25

PyTorch를 이용한 NLP 튜토리얼, Part 1: 기초 개념

Neural network를 위한 나의 첫 framework으로 PyTorch를 선택해서 알아가고 있다. PyTorch documentation의 tutorial 부분만 차근 차근 보고 있는데, 생각보다 내용이 좋다. 단순히 자기네 framework 사용법 뿐만이 아니라 deep learning의 여러 전반적인 기초에 대해서 잘 설명해주고 있다. 그 중에서 Beginner Tutorial 섹션의 "Deep Learning for NLP with Pytorch" 튜토리얼을 우리 말로 옮겨보았다.첫 번역 부분은 PyTorch의 기본적인 개념 및 사용법과 neural network의 이론적인 기초를 다룬다. 수식이 깨질 경우 Github을 통해 볼 수도 있다. NLP 분야에 관한 기초 지식이 없어서, 번역에 ..

Machine Learning 2018.03.22

Neural Network의 원리를 알기 위한 짧은 견문록

Neural Network은 자식새끼 알아서 크라고 냅두는 시골 엄마다 계속 핫한 숯같은 딥러닝, 그 기초 개념인 neural network을 알아보려고 한다. Neural network에 대해서 이래 저래 인터넷을 찾아봐도 잘 모르겠어서, 차근차근 ESL을 통해 neural network를 알아가는 과정을 기록했다. Engineering 입장에서가 아닌 stat/math 입장에서 저술한 책으로, 좋은 평가를 받은 책으로 알고 있기 때문에, 출처는 믿을만 하다고 본다. Supervised learning의 기본적인 개념 안에서 neural network를 설명할 수 있는 가장 기초적인 방법들부터 그 의미를 풀어나가고자 하는 것이 주 목적이다. 여기서 언급하는 각각의 방법론에 대한 설명은 각종 이론서에 굉..

Machine Learning 2018.03.18

Logistic Regression은 왜 Linear Method라고 불리는가?

결론부터 결론 먼저 말하자면 logistic regression이 제공하는 decision boundary가 linear하기 때문에 linear method로 분류된다. Linear regression처럼 linear equation을 풀지는 않지만, 그보다 훨씬 복잡한 계산 과정을 통했더라도 좌우지간 linear decision boundary를 제공하기 때문인 것이다. Logistic regression은 linear regression이 해주는 것보다 더욱 이치에 맞는 결과를 내 주는데, 왜냐하면 logistic regression은 확률의 성질을 linear regression보다 더 잘 지킬 수 있도록 보완된 것이기 때문이다. 본문은 이제 결론이 첫 문장에 나와서 놀랐을 수도 있겠지만, 본래 J..

Machine Learning 2018.02.25

왜 Python은 len 함수가 따로 있을까? Duck Typing과 Python Protocol

여기 Python list가 하나 있다. array = list(range(10000)) Python을 아는 사람이라면, array의 길이를 얻는 방법은 다음과 같이 간단하다는 것을 알 것이다. length_or_array = len(array) # == 10000 C++이나 Java 등의 다른 객체형 언어를 먼저 알고 있었다면 이런 의문이 들 수 있다. "array.size 또는 array.length 같이 안 하고 왜 len이라는 함수를 쓰지?" 질문에 대한 답을 하기 전에 먼저 코드 몇 뭉치를 보고 오는 게 더 좋을 것 같다. 1. len은 __len__을 호출한다. class ClassWithLen: def __init__(self, *items): self.storage = list(items)..

Programming/Python 2018.02.12

GNU/Linux를 더 알고 싶다면 Arch Linux

나는 Ubuntu 16.04로 입문해서 뭣도 모르고 윈도우쓰는 것 마냥 쓰다가, 조금씩 경험과 지식이 쌓이면서 Ubuntu가 Linux의 전부인 줄 알았었다. 하지만 지금 생각해보면 그 당시 나는 Ubuntu라는 Linux distro와 Unity 데스크탑 환경이 합쳐져서 내가 사용하는 Ubuntu가 만들어졌다는 개념조차 모르고 있었다 (물론 Unity 데스크탑도 Ubuntu에서 쓰기 위해 만든 것이긴 하지만). 이 것이 사실 Ubuntu가 (그리고 그 이름을 뒷받침하고 있는 Canonical이라는 회사가) 추구하는 목표이다: 누구나 쉽게 접근해서 설치하고, 바로 사용할 수 있는 데스크탑 환경 (It just works). 위에서 생각해 본 내 경험에 따르면 Ubuntu는 그 목표를 꽤나 잘 이루어내고 ..

GNU-Linux 2018.01.29

Vim 8의 native package support

Pathogen, Vundle, Vim-plug, minpac, Dein.vim ...위 이름들이 무엇을 의미하는지는 Vim 사용자라면 알 수 있을 것이다. 3rd-party Vim 플러그인 관리 도구는 꽤나 많아서 마치 리눅스 데스크탑 환경들(GNOME, KDE, Unity, Cinnamon, ...)을 보는 것 같다. 이런 도구 없이 Vim 플러그인을 설치한다면 많은 수작업이 요구되기 때문에 이를 자동화하는 것에 대한 필요성을 많은 사람들이 느꼈을 것이고, 그 와중에 vimscript의 대가들이 만들어낸 수 많은 역작들이 다양하게 존재하고 있다. 버전 8부터 Vim은 자체적인 패키지 관리 기능을 지원한다는 것을 뒤늦게 알았고, 마침 Ubuntu에서 Arch로 갈아탄 참이라 시도해 보기 딱 좋은 시점이..

GNU-Linux 2018.01.21

Arch Linux 한글 환경 설정

며칠 개고생해서 Arch Linux + Suckless 환경을 어느 정도 쓸만하게 구축했다. 나는 한국 사람이니까 한글을 쓸 수 있어야 "쓸만하다"의 마무리가 된다고 할 수 있겠다. 이 글에서는 Arch Linux 시스템에서 한글을 보고 쓸 수 있게 하기 위한 작업들을 정리한다. 1. 시스템 언어 설정 /etc/locale.gen에서 원하는 언어를 골라서 uncomment 한다. 나는 en_US.UTF-8과 ko_KR.UTF-8만 켰다. 그리고 아래 명령어를 통해 그 언어와 관련돼서 시스템이 필요로 하는 것들을 설치한다. $ locale-gen 설치가 잘 됐는지 결과를 아래와 같이 확인할 수 있다. $ locale -a C en_US.utf8 ko_KR.utf8 POSIX 그럼 지금 시스템에 어떤 언어가..

GNU-Linux 2018.01.17

Arch Linux에서 systemd-networkd로 WiFi 자동 연결 세팅

새해 첫 글! 요즘 Arch Linux + Suckless 환경 세팅에 푹 빠져있다. "푹 빠져있다"라고 쓰고 "많은 시간을 할애해도 아직 환경 구축을 못하고 있다"라고 읽는다. (아마도) 2010년 겨울에 샀던 Dell Inspiron N5010에 새로운 Arch 환경을 시험 삼아 설치하고 이것 저것 아직 세팅할 것이 많은 상태이다 (아직 한글을 못 치고 있다 흑흑). 아직 dual boot에 대한 자신이 없기 때문에 나의 주력 노트북인 Lenovo Ideapad에 새로운 Linux distro를 시험해 볼 여유는 없었는데, 다행히도 집 구석에 안 쓰이고 버려져 있던 Dell 노트북을 재활용할 수 있었다.오늘 정리하는 것은 아직 데스크탑 환경을 설치하지 않은 갓 태어난 Arch 터미널 (아마도 tty1..

GNU-Linux 2018.01.08