목록Machine Learning (8)
Zorba blog
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bnVmSO/btrI1V9PQRw/J0wx5b7JWkJ2FdpzctIyH0/img.png)
CNN의 등장 배경 전연결 신경망(Fully Connected Neural Network, FCNN)의 한계 - Fully Connected Layer 만으로 구성된 인공 신경망의 입력 데이터는 1차원 배열 형태로 한정. - 한 장의 컬러 사진은 RGB 값을 갖는 3차원 배열, 배치 모드에 사용되는 여러 장의 사진은 4차원 배열 형태. - Image Data로 전연결 신경망을 학습시켜야 할 경우 3차원 데이터를 1차원으로 평면화 시키는 과정이 선행되어야 함. - 이 과정에서 공간 정보가 손실, 특징 추출과 학습이 비효율적. - 이미지의 공간 정보를 유지한 상태로 학습이 가능한 모델의 필요성이 대두되어 합성곱 신경망이 탄생. - CNN(Convolutional Neural Network)은 기존의 FCNN..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/vGsnG/btrI1P2ERvC/owgJiS8XFDQQkKLhbRfQJ0/img.png)
RNN의 등장배경 피드포워드 신경망의 문제점 - 단방향인 신경망이기 때문에 구성이 단순하여 구조를 이해하기 쉽고, 많은 문제에 응용할 수 있다는 장점이 있지만 - 시계열 데이터를 잘 다루지 못한다는 단점이 있음 -> 그래서 순환 신경망(RNN) 이 등장. RNN(순환신경망) 이란 순환하는 신경망 - RNN의 특징은 순환하는 경로가 있다는 것. - 이 순환 경로를 따라 데이터는 끊임없이 순환. - 데이터가 순환되기 때문에 과거의 정보를 기억하는 동시에 최신 데이터로 갱신될 수 있음. 순환 구조 펼치기 - RNN 계층의 순환 구조를 펼침으로써 오른쪽으로 진행하는 피드포워드 신경망과 같은 구조. - RNN에서는 다수의 RNN 계층 모두가 실제로는 '같은 계층'인 것이 피드포워드 신경망과의 차이점. - 각 시각..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b70sEN/btrIY046p4F/KdEzemnHY19sPKbklx3x01/img.png)
LSTM의 등장배경 게이트가 추가된 RNN - RNN은 순환 경로를 포함하여 과거의 정보를 기억할 수 있음. - 구조가 단순하여 구현은 쉽지만 안타깝게도 성능이 좋지 않음. - 그 원인은 시간적으로 많이 떨어진 장기 의존 관계를 잘 학습할 수 없다는 데 있음. -> 따라서, 요즘에는 단순한 RNN 대신 LSTM이나 GRU라는 계층이 주로 쓰임. - LSTM이나 GRU에는 게이트라는 구조가 더해져 있는데, 이 게이트 덕분에 시계열 데이터의 장기 의존 관계를 학습할 수 있음. Tom was watching TV in his room. Mary came into the room. Mary said hi to ? "?" 에 들어가는 단어는 "Tom" 이다. RNN에서 이 문제에 올바르게 답하려면, 현재 맥락에서..
Gradient Descent - Neural Network의 weight을 조절하는 과정에는 보통 "Gradient Descent" 라는 방법을 사용함. - 네트워크에서 내놓는 결과값과 실제 결과값 사이의 차이를 정의하는 함수 Loss function J() - J()를 최소화하기 위해 기울기를 이용하는 방법을 Gradient Descent라 함. - 한 Interation 에서의 변화 식은 다음과 같음. 사진 - J() 앞에 붙은 에타(n)은 미리 정해진 step size로 learning rate로 불림. - 보통 0.01~0.001 정도의 적당한 크기를 사용. - Loss Function을 계산할 때 전체 train set을 사용하는 것을 Batch Gradient Descent 라고 함. - 이..
Ensemble Classifier Notation - 앙상블 분류기는 학습 데이터를 사용하여 여러 개의 서로 다른 분류기를 만들고, - 이들 분류기의 판정 결과를 투표방식이나 가중치 투표 방식으로 결합하여, - 최종 부류를 결정하는 분류기 이다. 배깅 알고리즘(Bagging, Bootstrap AGGregatING) Bootstrap 기법 - 주어진 학습 데이터 집합으로부터 복원추출을 하여 여러 개의 서로 다른 학습 데이터 집합을 만들어내는 기법 Bagging - 부트스트랩을 통해 만들어진 각 학습 데이터로부터 집합별로 분류기를 만들고, 투표나 가중치 투표를 하여 최종 판정을 하는 방법. Random Forest - 분류기로 결정트리를 사용하는 배깅 기법. - 결정트리를 만들어가는 과정에서 분할 속성을..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cyJKTZ/btrCjFsog2T/YCZdWDbHKEnkJqRnil9SUk/img.png)
SVM은 선형이나 비선형 분류, 회귀, 이상치 탐색에도 사용할 수 있는 머신러닝 모델입니다. SVM은 특히 복잡한 분류 문제에 잘 들어맞으며 작거나 중간 크기의 데이터셋에 적합합니다. (왜 작거나 중간 크기의 데이터셋에 적합한지 궁금하네요.) 선형 SVM 분류 SVM의 기본 아이디어는 그림으로 설명하는 것이 가장 좋습니다. 아래 사진을 보시면 IRIS 데이터에 대해서 각각의 선형 분류기가 만든 결정 경계가 나오는데요. 어떤 분류기는 제대로 분류하지 못하기도 하고 또는 너무 한쪽에 가까이 붙어서 새로운 샘플에 대해서는 제대로 동작하기 어려운 경우도 있어 보입니다. 반면에 SVM 분류기의 결정 경계를 보면 이 직선은 두 개의 클래스를 나누고 있을 뿐만 아니라 제일 가까운 훈련 샘플로부터 가능한 한 멀리 떨어..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bP5JRE/btrCjWABaF6/p5lltzCZkJjYOsaFevywa0/img.png)
분류기의 성능 평가는 여러번 읽어지만 헷갈리는 것이 정말 많은 주제중에 하나입니다. 특히 정밀도, 재현율, 민감도 등 한글로 보았을 때 의미와 매칭되지 않기 때문에 볼 때 마다 헷갈리고는 합니다. 이번 기회에 다시 한번 정리해보고자 합니다. 이진 분류기의 성능 평가 이진 분류기의 성능을 평가하는 좋은 방법은 오차 행렬(Confusion Matrix)를 조사하는 것입니다. 오차 행렬의 행은 실제 클래스를 나타내고, 열은 예측한 클래스를 나타냅니다. 아래 표와같이 왼쪽 위는 실제 음성을 음성으로 올바르게 예측한 결과이고, 그 오른쪽은 실제 음성을 양성으로 잘못 예측한 경우 입니다. 오차 행렬이 많은 정보를 제공해주지만 가끔 더 요약된 지표가 필요할 때도 있습니다. 먼저 살펴볼 만한 것 하나는 양성 예측의 정..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dVQmfj/btrCiP9RqhH/USPK2DdZ5i11cPLd4WBIG0/img.png)
Decision Tree(결정 트리)는 분류와 회귀 작업 그리고 다중출력 작업도 가능한 머신러닝 알고리즘입니다. 그리고 최근에 자주 사용되는 강력한 머신러닝 알고리즘 중 하나인 랜덤 포레스트의 기본 구성 요소이기도 합니다. 이번 글에서는 결정 트리의 훈련, 시각화, 예측 방법에 대해 먼저 살펴보겠습니다. 참고자료 : 핸즈온 머신러닝 2판 결정 트리를 이해하기 위해 모델 하나를 만들어서 어떻게 예측을 하는지 확인해보겠습니다. from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier iris = load_iris() x = iris.data[:, 2:] y = iris.target tree_clf = Decis..