Basic Concept of Machine Learning
-
예를 들어 호랑이와 고양이를 예측하는 인공지능을 만들고 싶다라고 한다면 모델입장에서는 두가지가 필요하다
- 호랑이이미지 = 호랑이레이블
- 고양이이미지 = 고양이레이블
-
이렇게 레이블 정보(With Labels)를 활용해서 학습하는 것을 Supervised Learning
지도학습
이라고 한다 -
반면, 레이블 정보 없이(No Labels) 이미지만을 활용해서 하는 것을 Unsupervised Learning
비지도학습
이라고 한다 -
레이블정보가 아니라 입력이미지에 대해서 잘 분류하였으면 +1점, 잘 분류하지 못했으면 -1점 처럼 리워드를 주는 방식(With Rewards)을 Reinforcement Learning
강화학습
이라고 한다 -
Machine Learning
- Supervised Learning
- Regression : 수치형,
회기
, 아파트가격/주가예측 - Classification : 카테고리컬 variable, 클래스로 예측하는 것,
분류
, 남성/여성, 양성/음성
- Regression : 수치형,
- Unsupervise Learning
- Clustering : 레이블이 없는 입력이미지를 바탕으로 학습할 때 유사하다고 계산이 되는 것을
군집화
하는 것 - Dimensionality Reduction : 데이터가 엄청나게 큰 벡터로 표현될 때 적은차원의 벡터로 표현 하는 것, 차원축소의 기법
- Clustering : 레이블이 없는 입력이미지를 바탕으로 학습할 때 유사하다고 계산이 되는 것을
- Reinforcement Learning
- Decision Process : 의사결정
- Game Ai : 게임 ai
- Supervised Learning
Process of Machine Learning
데이터 수집 -> 해당 데이터를 전처리(해당 모델에 대해서 잘 이용할 수 있게 작업) -> 모델링 -> 학습한 모델의 성능을 평가
-
Data Collection
- Database
- Server
- API
-
Preprocessing
- Not Available : 정형데이터의 경우 변수에 없는 값이 발생할 수 있다
- Scaling : 변수 간의 정보 반영이 단위 값에 따라 다를 수 있다
- ex) 사람의 키는 cm 몸무게는 kg 인데 남자/여자 판별할 때 영향력이 1cm와 1kg은 다르다
- Derived Variables : 파생변수(각 변수를 조합)를 만든다
-
Modeling
- ML Model
- DL Model
- RL Model
-
Performance Measure
- Accuracy : 얼마나 잘 분류했는지
- Mean Squared Error : 얼마나 잘 예측했는지 오차 계산
- Similarity : 얼마나 유사한지
Role of Train, Valid, Test Dataset
잘 활용하기 위해서는 3가지의 Dataset이 필요하다
-
Train
- 학습을 하는데 이용한다
- 학습이 완료되고 예측을 해본다
- Using for Training Model
-
Valid
- 학습을 하지 않고
- 예측만 진행한다
- 만약 예측시 valid보다 train이 좋지 않으면 다시 학습한다
- 모니터링의 역할만 한다
- Using for Training Direction
-
Test
- 모델이 한 번도 보지 못한 것을 평가
- Using for Measure Performance
-
10000의 dataset이 있을 경우 train : 6000, valid : 2000, test : 2000 으로 한다
-
8 : 1 : 1 도 한다
Process of NLP with Deep Learning
자연어처리 딥러닝을 이해하자
-
Data Collection
- Crawling : html에서 데이터를 직접 가져오기
- ex) 영화평을 크롤링해서 분석
-
Preprocessing
- Tokenizer
- Make Corpus
- Representation
-
Modeling
- ML Model
- DL Model
- RL Model
-
Performance Measure
- Accuracy
- Mean Squared Error
- Similarity
Make Corpus with Train Dataset
-
Make Number to Input Natural Language into Computer
자연어를 숫자 값으로 변경하기 -
Make Token to Make a Dictionary
토큰을 만들기- ‘I am a boy’ -> ‘I’, ‘am’, ‘a’, ‘boy’ 띄어쓰기를 바탕으로 단어 분리
- ‘I am a girl’ -> ‘I’, ‘am’, ‘a’, girl’
- 각 단어는 토큰을 의미
-
Make a Dictionary out of the Tokens in the Train Dataset
트레인 데이터셋 안에 있는 토큰으로만 단어사전을 만든다 -
Replace Words with Numbers using a Dictionary
숫자를 붙여주기- ‘I’ : 0, ‘am’ : 1, ‘a’ : 2, ‘boy’ : 3, ‘girl’ : 4
- ‘I am a boy’ -> [0,1,2,3]
- ‘I am a girl’ -> [0,1,2,4]
- 겹치지 않는다
Representation Vector
- ‘boy’ : 3 , ‘girl’ : 4
- boy and girl have similar roles in sentence
남자와 여자는 문장에서 비슷한 역할을 수행할 것이다 - But 3,4 can’t represent their role enough
하지만 3,4만으로는 비슷하다는 것을 나타낼 수 없다 - Represent Natural Language with Vectors not scalars
원-핫벡터도 어떠한 인덱스만 1이기 때문에 스칼라로 보자
다양한 숫자로 채워진 벡터로 만들어보자- Word2Vec, Glove, FastTest(Word)
- Sentence, Document, Sentence Piece
단어 뿐만아니라 문장, 문서 등으로 토큰을 만들 수 있다