본문 바로가기

AI143

DL : Keras texts_to_matrix 이해하기 texts_to_matrix()는 입력된 텍스트 데이터로부터 행렬(matrix)를 만드는 도구입니다. texts_to_matrx()는 총 4개의 모드를 지원하는데 각 모드는 'binary', 'count', 'freq', 'tfidf'로 총 4개입니다. 우선 'count' 모드를 사용해봅시다. word_index를 기준으로 texts들을 matrix로 바꾼다. import numpy as np from tensorflow.keras.preprocessing.text import Tokenizer texts = ['먹고 싶은 사과', '먹고 싶은 바나나', '길고 노란 바나나 바나나', '저는 과일이 좋아요'] t = Tokenizer() t.fit_on_texts(texts) print(t.word_in.. 2020. 3. 10.
DL : Keres 기초 Keras 훑어보기¶ 1. 전처리¶ In [1]: from tensorflow.keras.preprocessing.text import Tokenizer t = Tokenizer() fit_text = "The earth is an awesome place live" t.fit_on_texts([fit_text]) test_text = "The earth is an great place live" sequences = t.texts_to_sequences([test_text])[0] print("sequences : ",sequences) # great는 단어 집합(vocabulary)에 없으므로 출력되지 않는다. print("word_index : ",t.word_index) # 단어 집합(vocabu.. 2020. 3. 10.
ML & DL : 오류 정리 딥러닝에서 흔히 일어나는 오류들을 정리 1. Learning Rate large learning rate : overshooting = rate가 너무 크면 step이 너무커서 발산해버릴 수도 있다. small learning rate : 너무 오래걸리고 이게 최소점이 아닌데도 멈춘다. learning rate는 최소한 0.01에서 시작해야한다. 그리고 cost 함수를 출력해보고 줄일지 말지 결정한다. 2. Data 간의 Gap 만약 weight가 2개면, x1, x2의 datd 간에 gap이 크지 않을 경우, 다음과 같이 그래프를 나타내며 가운데로 향해서 z축의 값인 cost함수의 최솟값을 찾을 수 있다. 만약 x1, x2간의 gap이 큰 경우에는 x1에 영향을 주는 w1은 큰 폭으로 변하게 되고, x.. 2020. 3. 8.
ML & DL : 오류를 막는 방법 2019/10/24 - [machine_learning] - Machine-Learning & Deep-Learning 오류 Machine-Learning & Deep-Learning 오류 딥러닝에서 흔히 일어나는 오류들을 정리 1. Learning Rate 조정 !! large learning rate : overshooting = rate가 너무 크면 step이 너무커서 발산해버릴 수도 있다. small learning rate : 너무 오래걸리고 이게.. mambo-coding-note.tistory.com 위 글에서 ML & DL의 오류에 대해서 공부했다. 여기서는 이를 어떻게하면 해결할 수 있는지에 대해 적을 예정이다. 1. training set을 많이 가져야 한다. -> overfitting.. 2020. 3. 8.
DL : Deep Learning : 개요 : 학습 방법 1-1. Forward Propagation 일반적으로 입력층, 은닉층, 출력층을 순서대로 지나는 순서를 순전파라고 한다. 1-2. Backpropagation https://wikidocs.net/37406 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net 2. Loss Function 오차가 클 수록 손실 함수의 값은 크고 오차가 작을 수록 손실 함수의 값은 작아집니다. 회귀에서는 평균 제곱 오차, 분류 문제에서는 크로스 엔트로피를 주로 손실 함수로 사용합니다. 손실 함수의 값을 최소화하는 두 개의 매개변수인 가중치 W와 편향 b를 찾아가는 것이 딥 러닝의 학습 과정이므로 손실 함수의 선정은 매우 중요합니다. 1) MSE(Mean Squared Error, MSE) 오차 제곱 .. 2020. 3. 8.
DL : Deep Learning 개요 : 인공 신경망, Activation Function 1. Feed-Forward Neural Network 2. Fully-Connected Layer, Dense Layer 어떤 층의 모든 뉴런이 이전 층의 모든 뉴런과 연결되어있는 층을 전결합층이라고 한다. 위의 그림에서 FFNN에 해당한다. 3. 활성화 함수 (Activation Function) (1) 활성화 함수의 특징 - 비선형 함수(Nonlinear function) 층을 계속 쌓는다고 가정해보겠습니다. 활성화 함수는 f(x)=Wx라고 가정합니다. 여기다가 은닉층을 두 개 추가한다고하면 출력층을 포함해서 y(x)=f(f(f(x))가 됩니다. 이를 식으로 표현하면 W×W×W×X입니다. 그런데 이는 잘 생각해보면 W의 세 제곱값을 k라고 정의해버리면 y(x)=kx와 같이 다시 표현이 가능합니다. .. 2020. 3. 8.
DL : Deep Learning 성공 이유, 장단점 Deep Learning이 각광받는 이유 빅데이터 관련한 플랫폼이 발전했기 때문입니다. -> memory와 storage 가격의 감소로 큰 dataset을 저장이 가능했고, network 기술의 폭발은 memory와 계산능력에 대해 발전을 주었고, cloud 저장소 및 컴퓨팅은 NN계층 및 node의 수를 증가시켰다. GPU 도입으로 병렬 시스템이 구비되었다. 훈련 과정에서 피쳐 추출을 통합하는 것이 가능해졌기 때문입니다. -> CNN과 같은 feature를 추출하여 효율적인 계산과 차원축소로 인해서 계산속도가 굉장히 빨라졌다. 개발 프로세스에서 성능 평가를 체계적으로 통합하기 때문에 이전에는 해결되지 않은 문제에 성공했습니다. -> Kaggle 과 같은 comunity가 늘어남에 따라 발전속도가 점점 .. 2020. 3. 7.
ML : 회귀분석 : PCA (Principal Component Analysis) 차원축소 등장 배경 차원의 저주 1차원에서 50%의 자료를 가지고 있다고 할 때, 차원을 늘리면 (변수를 추가하려면) 25%의 자료를 가지고 있고, 또 차원을 늘리면 12.5%의 자료를 가지고 있다고 얘기할 수 있다. 차원이 커질수록 한정된 자료는 커진 차원의 패턴을 잘 설명하지 못한다. 차원이 증가함에 따라 model의 complexity가 증가한다. 차원 축소의 필요성 KNN이 있다고 가정할 때, 쓸데없는 변수가 추가가 된다면 model의 성능에 악영향을 끼친다. 상관계수가 매우 큰 서로 다른 독립변수 예측하고자 하는 변수와 관련이 없는 변수 따라서 성능을 높이기 위해 차원축소를 진행한다. 이외의 방법 변수 선택법 penalty 기반 regression CNN Drop-Out & Bagging 공분산 행렬 정.. 2020. 3. 7.
ML : Machine Learning 개념과 종류 : 모형의 적합성 평가 및 실험 설계 모형의 적합성을 평가하는 방법 학습을 시킬 때 변수의 갯수에 따라 학습데이터의 성능과 검증데이터의 성능을 항상 비교해야 한다. 데이터 분할 data 분할은 항상 training, valiadation, test 로 세 가지를 나눠서 검증해야한다. 2020/02/01 - [machine_learning/ML] - ML&DL : train, validation, test 데이터로 나누기 ML&DL : train, validation, test 데이터로 나누기 code - 1 import sklearn def data_split(examples, labels, train_frac, random_state=None): ''' https://scikit-learn.org/stable/modules/generate.. 2020. 3. 7.
ML : Machine Learning 개념과 종류 : 개념과 종류 정의 머신러닝은 f(x)라는 함수, 머신러닝 알고리즘을 만들어 X라는 입력변수를 받으면 Y라는 종속변수를 출력하는 과정이다. 또한 회귀분석의 경우 모집단을 잘 알지 못하기 때문에, 학습데이터만 추출하여 추정하는 머신러닝 알고리즘을 만든다. 예시 지도학습 vs 비지도학습 지도학습 (Supervised) 비지도학습 (UnSupervised) Y = F(x) 일 때, Y는 연속형 변수, X는 연속 or 이산형 변수, F는 회귀모형 Y는 이산형 변수(class), X는 연속 or 이산형 변수, F는 분류모형 출력변수는 존재하지 않고, 입력 변수 (X) 간의 관계에 대해 모델링을 하는 것. 회귀모형, 분류모형 군집분석(유사데이터), PCA(독립변수들의 차원축소화) ML의 종류 선형 회귀분석 (Linear Regr.. 2020. 3. 7.
자연어 처리 : SVD 정리 선형대수학에서 실제로 SVD하는 과정은 꼭 익혀보길 바란다. 공돌이의 수학노트에서 원형에서 타원형으로 했을 때, x,y가 Ax,Ay로 변할 때 수직인 부분만 관찰한 것을 기억하자. https://www.youtube.com/watch?v=cq5qlYtnLoY U,V 는 정규직교벡터이며, 단위벡터라고 정의하였다. scaling vector가 0이라는 것은 선형변환을 진행하고 나서 그 해당하는 부분의 영향이 0으로 없어졌다는 의미이다. 그리고 scaling vector는 σi = |Avi| 에 해당한다. 따라서 A 행렬에 대한 단위벡터 vi와 ui에 대한 정보량을 담고 있다. https://darkpgmr.tistory.com/106 [선형대수학 #4] 특이값 분해(Singular Value Decompos.. 2020. 3. 6.
자연어 처리 : 문서 유사도 : 유클리드, 코사인, 자카드 1. Euclidean Distance Similarity 좌표를 word들이라고 가정을 해보자. (5,1)과 다른 단어들을 유사도 측정을 해볼 때, 거리는 피타고라스 정리로 구할 수 있다. 여기서 거리가 짧으면 단어들끼리 유사도가 높고, 거리가 길면 단어들끼리 유사도가 낮다고 판단한다. import numpy as np def dist(x,y): return np.sqrt(np.sum((x-y)**2)) doc1 = np.array((2,3,0,1)) doc2 = np.array((1,2,3,1)) doc3 = np.array((2,1,2,2)) docQ = np.array((1,1,0,1)) print(dist(doc1,docQ)) print(dist(doc2,docQ)) print(dist(doc3.. 2020. 3. 6.