전체 글

Recurrent Neural Network
1. RNN(Recurrent Neural Network, RNN) 이론 입력과 출력을 시퀀스 단위로 처리하는 시퀀스(Sequence) 모델 번역기의 경우를 예로 들면 번역을 원하는 문장이 입력 값이고 Sequence로 이루어져 있다. 출력하는 값 또한 번역된 값으로 Sequence로 이루어져 있다. RNN은 이러한 Sequence로 된 값들을 처리하기에 적합하며, 입력층에서 은닉층을 지나 출력층으로 향하는 FeedFoward Neural Network와는 다르게 은닉층을 지난 출력값을 다시 출력층 방향과 다음 은닉층 노드로 보내는 특성을 갖고 있다. 위 RNN 모델은 위와 같은 형태로 나타낼 수 있는데, 초록색 노드를 Cell이라고한다. Cell은 이전 값들을 기억하는 일종의 메모리 역할을 하기 때문에..

Convolution Neural Network
1. CNN 기본 개념 CNN(Convolutional Neural Network)은 이미지 처리에 탁월한 성능을 보이는 신경망으로 크게 합성곱층(Convolution Layer)과 풀링층(Pooling layer)으로 구성된다. CNN은 다층 퍼셉트론에서 1차원 텐서인 벡터를 이용하는 것과 달리 공간적인 구조(spatial structure)를 그대로 사용한다. 2. Filter와 Feature map 이미지는 (높이, 너비, 채널 or 깊이)이라는 3차원의 텐서인데, 채널(Channel)이라는 것 색 성분을 의미한다. 통상적으로 적색, 녹색, 청색 3가 지 채널을 사용한다. 합성곱 연산은 커널(kernel) 또는 필터(filter)라는 nxm의 행렬로 이미지를 가장 왼쪽 위부터 오른쪽까지 순차적으로 ..

Collaborative Filtering Recommendation
KAIST GSDS 대학원 박찬영 교수님의 수업인 추천시스템 및 그래프 기계학습 수업을 필기입니다. Collaborative Filtering(CF) Approach Use the "wisdom of the crowd" to recommend items Basic assumption and idea Users give ratings to items Customers who had similar tastes in the past, will have similar tastes in the future(입맛 안변해) Memory(Neighborhood) based - CF Main idea Similar users display similar patterns of rating behavior -> User-b..

기울기 소실과 폭주
기울기 소실 문제 Backpropagation에서 chain rule로 인해 계속 곱을 할수록 너무 작아져서 gradient가 사라지는 문제가 일어난다. sigmoid 함수는 1보다 작은 값으로 나오기 때문에 계속 Gradient가 작아지게된다. 1. ReLU(Rectified Linear Unit), ReLU 변형들 사용하기 시그모이드 함수를 이용하게 되면 절댓값이 큰 경우에 시그모이드 함수의 출력 값이 0 또는 1에 수렴하면서 기울기가 0에 가까워지게 된다. 따라서 역전파 과정이 제대로 이루어지지 않고 기울기가 점차 사라지는 문제가 일어나게 된다. 따라서 ReLU나 ReLU변형을 사용하여 이를 방지할 수 있다. 2. 가중치 초기화(Weight initialization) 가중치 초기화 방법을 다르게 ..

Intro & Basic Concepts
KAIST AI 대학원 신기정 교수님의 수업인 데이터마이닝 및 소셜 네트워크 분석 수업 필기입니다. Graph Machine Learning Tasks Node classification: Predict the property of a node Link Prediction: Predict how networks evolve, Predict whether there are missing links between two nodes Graph classification: Categorize different graphs Clustering: Identify densely linked clusters of nodes Ranking: Measure importance of nodes Many others+ Gra..

과적합 줄이기
1. 데이터의 양을 늘리기 데이터 양이 적으면 해당 데이터의 특정 패턴이나 노이즈까지 쉽게 학습함으로 데이터 양을 늘리면 도움이 된다. 따라서 데이터 양이 적을 때는 의도적으로 기존 데이터를 약간씩 변형하여 추가하는 방법을 사용하기도 하는데 이를 데이터 증식 또는 증강(Data Augmentation)이라고 한다. 2. 모델의 복잡도 줄이기 Occam’s Razor라는 철학 용어는 Simple is best라는 뜻이다. 딥러닝의 복잡도는 은닉층의 수나 매개변수의 수(Capacity라고도 함) 등으로 결정이 되는데, 모델이 너무 복잡하면 과적합을 야기할 수도 있다. 3. 가중치 규제(Regularization) 적용하기 복잡한 모델을 규제하는 방법 중 하나로 가중치 Regularization이 존재한다. ..

Sigmoid Function(시그모이드함수)
Sigmoid Function은 Neural Network에서 Binary Classification의 Activation Function으로 사용되는 함수이다. 결과 값을 0과 1으로 표현되는 값에서 선형함수를 이용하면 제대로된 예측을 할 수 없다. 장점 매끄러운 곡선을 갖기때문에 기울기가 급격하게 변해 발생하는 Gradient Exploding이 발생하지 않는다. Output이 0~1 사이에 있기 때문에 Output이 어느 값에 가까운지, 어느 분류인지 알기 쉽다. 단점 Input이 엄청 크도라도 0~1사이의 값으로 나오기 때문에 오히려 Gradient Vanishing문제가 발생할 수 있다. 시그모이드 함수의 출력값이 모두 양수이기 때문에 경사하강법을 진행할때, 그 기울기가 모두 양수이거나 음수가 ..

Backpropagation(역전파)
단일 퍼셉트론에서는 경사하강법(gradient descent)로 가중치를 수정해가며, 오차를 줄였다. 다층 퍼셉트론에서도 비슷한 방법으로 진행하는데, 그것이 Backpropagation이다. Backpropagation 방법 임의의 초기 가중치를 정한 후 Forward Propagation을 진행한다. 계산 결과와 우리가 원하는 값 사이의 오차를 구한다(Loss function에 따라 다름). Gradient descent 방식을 이용해 바로 앞 가중치를 오차가 작아지는 방향으로 수정 위와 같은 그림에서 첫 번째로 수정할 가중치들은 \(W_5,W_6,W_7,W_8\)이다. 우선 \(W_5\)을 업데이트하기 위해서는 total Error를 \(W_5\)에 대해서 미분한다. 그 후 Gradient desce..