본문 바로가기
728x90

Drawing (AI)112

Word Embedding(1) 희소 표현(Sparse Representation) one-hot 인코딩과 같은 방식으로 인코딩을 한 결과인 one-hot 벡터들은 하나의 인덱스의 값만 1이고 나머지 인덱스는 전부 0으로 표현하는 벡터표현 방법을 희소표현이라고 하고 이때 one-hot 벡터는 희소 벡터이다. 희소 벡터의 문제점은 단어의 개수가 늘어나면 벡터의 차원이 계속 커진다는 점이다. 단어가 10,000개였다면 벡터의 차원은 10,000이어야한다. 심지어 그 중에서 단어의 인덱스에 해당되는 부분만 1이고 나머지는 0의 값을 가져야만 한다. 단어 집합이 클수록 고차원의 벡터가 된다. 예를 들어 단어가 10,000개 있고 인덱스가 0부터 시작하면서 강아지란 단어의 인덱스는 4였다면 one-hot 벡터는 다음과 같이 표현된다. Ex) 강.. 2023. 5. 11.
Long Short-Term Memory (LSTM) Vanilla RNN의 한계 기본을 뜻하는 Vanilla RNN은 time-step이 길어질수록 정보량이 손실되어 시점이 길어지면 x1과 같은 초반부의 정보의 영향력은 거의 없어지게 된다. 이러한 문제를 장기 의존성 문제(the problem of Long-Term Dependencies)라고 한다. 위와 같은 Vanilla RNN을 보완하여 아래와 같은 LSTM을 만들었다. LSTM 구조 LSTM은 은닉층의 메모리 셀에 입력 게이트, 망각 게이트, 출력 게이트를 추가하여 불필요한 기억을 지우고, 기억해야할 것들을 정한다. 요약하면 LSTM은 은닉 상태(hidden state)를 계산하는 식이 전통적인 RNN보다 조금 더 복잡해졌으며 셀 상태(cell state)라는 값을 추가하였다. 셀 상태는 Ct로 .. 2023. 5. 5.
Recurrent Neural Network 순환 신경망(RNN) RNN(Recurrent Neural Network)은 시퀀스(Sequence) 모델로 입력과 출력을 시퀀스 단위로 처리한다. 단어 시퀀스로 이루어진 언어모델들이 대표적인 시퀀스 모델이다. RNN은 딥러닝에서 가장 기본적인 시퀀스 모델이라고 할 수 있다. 우선 순환 신경망의 가장 큰 특징은 그림과 같이 활성화 함수를 통해 나온 결과를 출력층 방향으로도 보내주는 것이다. RNN에서 은닉층에서 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드를 셀(cell)이라고 한다. 이 셀은 이전의 값을 기억하려고 하는 일종의 메모리 역할을 수행하므로 이를 메모리 셀 또는 RNN 셀이라고 표현한다. 위와 같이 그림을 그리면 조금더 직관적으로 이해하기 쉽다. 은닉층의 메모리 셀은 각각의 시점(ti.. 2023. 5. 2.
Udemy - 머신러닝의 모든 것 (Kernel SVM - 2) Social Network Ads 같은 데이터에 대해 kernel SVM모델을 만들어보자. 이전에 만든 SVM모델과 다른것은 하나도 없고 kernel을 rbf로 바꾸어주면된다. # Support Vector Machine (SVM) # Importing the libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd # Importing the dataset dataset = pd.read_csv('Social_Network_Ads.csv') X = dataset.iloc[:, :-1].values y = dataset.iloc[:, -1].values # Splitting the dataset into the Tra.. 2023. 4. 30.
Udemy - 머신러닝의 모든 것 (Kernel SVM - 1) Kernel Support Vector Machine 우선 간단한 1차원 상황부터 보면 다음과 같은 경우에는 선형적인 선을 통해 데이터를 분류할 수 없다. 따라서 f = (x-5)^2 함수에 값을 얹어서 선형적으로 분류할 수 있도록 다음과 같이 바꾼다. 이제 linear한 점선으로 데이터가 분리됨을 볼 수 있다. 이를 좀더 고차원에서 살펴보면 다음과 같다. 살펴보면 z라는 새로운 차원이 생겼고 데이터들은 Hyperplane으로 나뉘어짐을 볼 수 있다. 추후에 다시 2차원으로 projection을 하면 다음과 같이 비선형 분리기가 생김을 알 수 있다. 그러나 이렇게 고차원에서 연산을 진행하고 다시 저차원으로 내리는 과정은 컴퓨터에게도 굉장히 버거운 연산이라 속도면에서 단점이 존재할 수 있다. 따라서 더 효.. 2023. 4. 26.
Udemy - 딥러닝의 모든 것(Softmax & Cross-Entropy) Softmax function 우선 인공신경망에서 의문으로부터 시작해보자. output layer의 두 결과는 서로 연관이 없는데 어떻게 두 결과 값의 합이 1이 되는걸까? 사실 기본적인 인공신경망에서는 두 결과 값의 합이 1이 된다는 보장이 없다. 우리가 따로 함수를 적용시켜서 그 합이 1이 되도록 조절하는 방법이 유일하다. 그리고 그 함수가 바로 Softmax function이다. 일정한 값 사이의 값으로 바꾸어준다는 점에서 정규화함수라고 불리기도한다. Softmax function은 Cross-Entropy function과 함께 이용된다. Cross-Entropy function 함수는 아래의 Li 함수이고 우리는 아래의 H(p,q) 함수를 이용하게된다. 두 식의 모양은 조금 달라도 결과 값은 똑.. 2023. 4. 23.
Udemy - 딥러닝의 모든 것(CNN) Convolution Neural Network란? Convolution Neural Network란 얀 르쿤이 부흥 시킨 신경망 기법이다. 보통 이미지 분류에서 많이 사용된다. ANN이 인간의 뉴런을 모방하여 구조화한 것과 같이 CNN은 인간의 시신경을 모방하여 구조화했다. 다음에서 하나씩 살펴보자. Convolution 컨볼루션은 이전에 신호와 시스템 강의에서 이미 배운적이 있는 연산이기에 간단하게 보고 넘어간다. 우선 위의 식은 전기전자, 통신 분야의 공학도들은 모두 친숙한 convolution 연산식이다. 위의 그림은 웃는 표정인 Input Image를 Feature Detector이다. 단순하게 보면 Input Image에서 Feature Detector의 사이즈에 맞는 배열을 찾아가며 Feat.. 2023. 4. 6.
Udemy - 머신러닝의 모든 것 (SVM) Support Vector Machine 다음과 같이 두개의 그룹으로 나누어진 데이터가 있다고 가정할때 다양한 선을 그어서 그 경계를 설정할 수 있다. 이때 SVM은 아래와 같이 양쪽 그룹에 붙혀서 그릴 수 있는 한계선 간의 거리가 최대치가 되는 경우(Maximum Margin)를 찾는다. 위 그림의 개념들을 좀더 자세히 보면 Maximum Margin을 결정하는 그룹의 끝에 위치하게 되는 data를 Support Vectors라고 부른다. 위의 두 Support Vectors 점들이 결국 SVM 알고리즘을 결정하는 결정적 요인이 된다. Maximum Margin을 기준으로 중심에 그려지는 선은 Maximum Margin Hyperplane이라고 불린다. Hyperplane은 초평면인데 선이 평면이라고 .. 2023. 4. 2.
Udemy - 머신러닝의 모든 것 (K-NN) K-Nearest Neighbors KNN알고리즘은 다음과 같이 분류되어있는 데이터 사이의 새로운 데이터를 특정 결정짓는 알고리즘이다. 알고리즘의 과정을 살펴보자. STEP 1: K의 숫자를 고른다. 이때 k는 알고리즘 안에 넣을 이웃의 수이다. 가장 흔한 디폴트 값은 5이다. STEP 2: K개의 가장 가까운 이웃 데이터를 찾는다. 이는 어떠한 거리 방식을 이용해도 괜찮지만 보통 유클리드 거리를 이용한다. STEP 3: 발견한 K개의 이웃들이 포함된 카테고리를 조사하여 각 카테고리에 포함된 이웃 수를 센다. STEP 4: 새로운 데이터를 가장 많은 이웃이 포함된 카테고리에 포함시킨다. 위 그림을 보면 k=5일때 가장 가까운 이웃으로 선정된 5개의 데이터중 3개는 Category A, 2개는 Catego.. 2023. 3. 31.
728x90