본문 바로가기

ML, DL51

[RNN] LSTM이란? 이글은 기계학습, 오일석 저 책을 보고 공부한 내용을 기록한 것입니다. RNN 모델 중 하나인 LSTM을 배워봅니다. 4. LSTM LSTM(Long short term memory)(Hochretier, 1997)은 여러 종류의 게이트가 있어 입력을 선별적으로 허용하고, 계산 결과를 선별적으로 출력할 수 있다. GRU(Gated recurrent unit)은 성능 저하를 최소로 유지하면서 LSTM을 단순화한 모델이다.(Chung, 2014) 4.1) 게이트 이용한 영향력 범위 확장 LSTM의 핵심 아이디어는 게이트를 열고 닫는 것이다. 게이트는 0.0~1.0사이의 실숫값을 가지고 개폐 정도를 조절한다. 언제 얼마만큼 여닫을지는 학습으로 알아낸다. 구조는 RNN의 은닉층에 메모리블록을 배치한 것이다.이 .. 2019. 10. 25.
[RNN] RNN이란? Sequantial data? 이 글을 기계학습, 오일석 저 책을 보고 공부한 내용을 기록한 글입니다. sequantial data에 대해 알아보고, RNN을 알아봅니다. 1. 순차데이터(Sequantial data) 데이터에는 시간성(Temporal property)을 가진 데이터가 많다. 심전도(ECG) 신호, 주식 시세, 음성 신호, 문장, 유전자 열 등등이 있다. 이런 데이터는 특징에 순서가 있다는 의미에서 순차데이터라고 한다. 시간성 정보를 잘 이용해야 데이터의 특징을 잘 다룰 수 있다. MLP 에 입력하는 데이터는 정적인 반면, 시간성 데이터는 시간에 따라 내용이 변하므로 동적이고, 길이가 가변적이다. 매우 긴 패턴을 처리하는 연구가 활발히 진행되고 있다. 예를 들어, 긴 문장은 멀리 떨어진 두 단어 사이의 문맥을 이해해야.. 2019. 10. 25.
[Pandas] Part 4. Duplicate, SettingWithCopyWarnings, Display options, Apply fuction, MultiIndex 26. Find and Remove Duplicate Rows user_cols = ['user_id', 'age', 'gender', 'occupation', 'zip_code'] users = pd.read_table('http://bit.ly/movieusers', sep='|', header=None, names=user_cols, index_col='user_id') users.shape users.zip_code.duplicated() # 이전 열에 같은 값이 있으면 False users.zip_code.duplicated().sum() # zip_code가 같은 148개의 dup.. 2019. 10. 12.
[Pandas] Part 3. Dataframe smaller and faster, Dummy, Dates and times, 21. Make Dataframe smaller, faster object 타입 대신, category 타입 사용은 메모리 usage를 효율적으로 활용할 수 있게할 뿐만 아니라 시간도 빨라질 수 있습니다. string(object)을 탐색하는 것보다, integer(category)탐색이 시간이 빠르기 때문입니다. drinks.info() # + 의미: object가 무엇을 참조하느냐에 따라 9.2KB를 초과할 수 있다. >> RangeIndex: 193 entries, 0 to 192 Data columns (total 6 columns): country 193 non-null object beer_servings 193 non-null int64 spirit_servings 193 non-null i.. 2019. 10. 12.
[Pandas] Part 2. Groupby, Describe, Missing Value, String, Index 9. Multiple filter criteria to DataFrame C++ 에서 |는 비트연산자의 or을 의미하고, ||가 논리연산자의 or 을 의미하지만, 파이썬은 |가 논리연산자 or을 의미합니다. 또는 or이라고 적어도 됩니다. and는 &, and로 표시합니다. "상영시간이 200이상이거나 장르가 드라마인 영화목록" movies[(movies.duration >= 200) | (movies.genre == 'Drama')] select * from movies where movies.duration >= 200 or movies.genre == 'Drama' movies[(movies.genre == 'Crime') | (movies.genre == 'Drama') | (movies.genr.. 2019. 10. 12.
[Pandas] Part 1. DataFrame, Series, Rename, Remove, Sort, Filter 1. Data Analysis Using a pandas library in python language 2. Pandas data_table = read_table('파일명') tsv, csv. 등등 다양한 파일을 불러올 수 있음. read_table안의 추가 인수를 소개합니다. 추가 인수 내용 sep='|' |기준으로 데이터를 나눈다, seperate header=None 데이터 양식에 헤더가 없을 때, 맨 첫번째 행이 헤더가 되는 것을 막는다. name=user_cols 각 열(column)의 이름을 리스트로 구성해 대입시키면, 헤더 이름을 만들 수 있다. skiprows=None, skipfooter=None 데이터 안에 note같은 것이 들어있을 때, skip할수 있.. 2019. 10. 12.
[Tutorial] scikit-learn과 pandas사용해서 kaggle submission 파일 만들기 pandas, scikit-learn 을 이용해 캐글 과제물 submission.csv 을 제작해보겠습니다. 데이터셋은 다음과 같습니다. import pandas as pd train = pd.read_csv('http://bit.ly/kaggletrain') train.head() FIELD1 PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked 0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.25 S 1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38.0 1 0 PC 17.. 2019. 10. 11.
[Regularization] 규제, 모델 일반화능력 향상, Model generalization 1. 규제(Regularization)의 필요성 신경망이 몇 개의 hidden layer와 각 layer에 몇 개의 node를 가져야 할 지 일일이 정해줄 수 없다. 따라서, 충분히 큰 용량의 신경망 구조를 설계 후, 학습 과정에서 여러 규제 기법을 적용하는 방법을 구사한다. 2. 규제의 정의 데이터 원천에 기본적으로 내재한 정보를 사전지식(prior knowledge)라 한다. 티호노프의 규제 기법은 smooth function을 이용해서 이 사전지식을 유지하면서(가까운 데이터는 비교적 가깝게 매핑된다.) 규제가 일어난다고 가정한다. $$ J(\theta) = J(\theta) + \lambda R(\theta) $$ Ian Goodfellow, 2016는 규제에 대해 다음과 같이 말한다. 일반화 오류.. 2019. 10. 7.
[GAN for Data Augmentation] DAGAN, 2018 DAGAN, 2018 Antreas Antoniou et al., arXiv [stat.ML], 2018 Data Augmentation GAN Abstract (문제) Data augmentation은 모델의 일반화에 기여하는 좋은 수단이지만, 기존의 Data augmentation 은 그럴듯한 대체 데이터에 한정되어 데이터를 증식했다. (단순 선형 변환 등) (해결) DAGAN을 이용하면, 한 소스 도메인으로 부터 다른 클래스의 데이터를 생성해낼 수 있다. 데이터를 생성함에 있어 클래스에 구애받지 않기 때문에, 보지 못했던 클래스에도 적용할 수 있다. 또한, Matching Networks 같은 few-shot learning에 DAGAN을 적용함으로써, 다양한 데이터들에 대해 성능 향상을 할 수 있.. 2019. 10. 5.
Tensorflow, CUDA, cuDNN, nvidia GTX 설치(GPU셋팅) + pytorch (Windows 10) 딥러닝 수업을 들으며, 과제를 해결하기 위해 노트북에 tensorflow-gpu 환경설정을 해보았습니다. GTX 1050 달린 노트북인데, 애매한 사양이라 쓰기도 번거롭지 싶지만 내 노트북 무게를 늘린 장본인이라 생각하면.. 뽕을 뽑아야 겠다고 생각하여 설치를 하게 되었습니다. 제가 설치한 환경은 다음과 같습니다. 운영체제 Windows 10 그래픽 드라이버 Nvidia driver 431.86 C환경에서 GPU 지원프로그램 CUDA 9.0 딥러닝 지원 라이브러리(CUDA전용) cuDNN 7.0.5 언어 python 3.6.5 딥러닝 라이브러리 tensorflow-gpu 1.12 가상환경 virtualenv 아나콘다 깔기 싫어서 사용안했습니다. 물론 여기에 pytorch 혹은 keras 설치도 가능합니다.. 2019. 10. 1.
728x90