오토인코더(Autoencoder)는 비지도학습 유형의 딥러닝 모델 중 하나이며 입력된 데이터를 신경망에 통과시켜 똑같이 출력하는 기능을 한다. 입력 재건 자체보다는 입력을 잘 표현할 수 있는 은닉 표현(hidden representation)을 찾는 것을 목적으로 한다. 이를 통해 입력 크기를 더 적은 차원으로 요약할 수 있다. 유의미한 정보는 모든 가능한 경우의 극히 일부분만을 차지하며 집중되어있다는 다양체 가정이 모델의 가능성을 뒷받침한다. 은닉층의 노드를 증가시킨다면 당연히 입력 데이터를 완벽하게 표현할 수 있지만 이는 오토인코더를 사용하는 목적을 퇴색시킨다.(over-fitting) 물론 더 적은 노드를 사용하면 완벽하게 입력데이터를 묘사할 수 없을지 모르지만 그럼에도 어느 정도 입력 데이터의 특..
입력이 가변적이고 순차적인 sequential data인 경우 RNN을 사용한다. RNN은 순차적인 데이터가 입력이나 출력으로 사용된다는 특징을 가지고 있다. feed-forward neural network의 일종이며 매개변수 공유를 통해 매개 변수 학습의 비용이 적다는 특징을 가지고 있다. 명칭에서 알 수 있듯이 이전 은닉층의 출력을 다음 은닉층의 입력으로 반복하여 사용한다. 출력층의 출력이 은닉층의 입력으로 공급되는 경우도 있다.(teacher forcing) 은닉층의 출력이 이전 은닉층의 입력으로 되돌아가는 경우도 있다. 대표적인 예로 Encoder-Decoder Architecture, Deep RNN가 있다. RNN은 feed-forward neural network로서 기울기 하강 방식으로 ..
입력 데이터의 순서가 중요한 경우 CNN을 사용하여 task를 수행할 수 있다. CNN은 convolution layer(+detector stage), pooling layer, fully-connected layer로 구성된다. 입력(input)과 가중치(kernel)의 convolution(엄밀히 말하면 cross correlation이다.)을 통해 핵심적인 정보를 추출한다. 대개 출력의 수는 입력에 비해 작아지나 zero-padding을 통해 유지시킬 수 있다. convolution 연산은 입력과 그보다 작은 커널의 상호작용만으로 출력을 내기 때문에 결과적으로 특정 입력 노드 주변의 노드들만 기여를 한다.(sparse interaction) 기여하는 입력 노드들의 집합을 receptive fiel..
딥러닝은 알고리즘 특성상 복잡도가 높아 과적합이 발생하기 쉽다. 과적합 문제를 해결하기 위해 여러 가지 정규화(Regularization) 방법이 요구되었다. Parameter Norm Penalty는 파라미터의 페널티 항을 비용함수에 추가하여 파라미터 값에 제약을 주어 모델의 복잡도를 낮추는 방법이다. 노드 사이의 간선의 가중치만을 페널티 항에 포함시키고 바이어스는 포함시키지 않는다. 바이어스에 대한 제약은 모델을 전체적으로 움직여 과소적합을 발생시키기 때문이다. 또한 층마다 다른 종류의 페널티 항을 사용할 수 있지만연산에 오랜 시간이 걸리기 때문에 대개 공통 페널티 항을 사용한다. 대표적으로 릿지(Ridge) 스타일의 페널티 항인 L2 norm penalty와 라소(Lasso) 스타일의 L1 norm..
딥러닝(deep learning)은 딥 뉴럴 네트워크(deep neural network)를 기반으로 하는 학습 알고리즘이다. 딥 뉴럴 네트워크 중 심층 순방향 신경망(deep feedforward network)는 데이터가 입력층(input layer), 은닉 층(hidden layer), 출력 층(output layer)을 거쳐가면서 원하는 결과를 얻어낼 수 있는 신경망 구조이다. 이러한 층의 개수를 신경망의 깊이(depth)라고 하고 층에 있는 노드의 개수를 너비(width)라고 한다. 딥러닝은 각 층의 노드를 연결하는 가중치를 학습하는 과정이며 대개 기울기 하강법(gradient descent)을 사용하여 비용함수(cost function)을 최소화하는 방향으로 가중치를 조절한다. 이때 조절하는 ..
군집화는 레이블이 없는 데이터에 대한 비지도학습(unsupervised learning)의 일종이다. 입력 변수에 대해 유사한 데이터끼리는 같은 군집에 포함시키고 다른 데이터이면 다른 군집으로 묶는 기법이다. 서로 비슷한 데이터를 그룹화하여 이해하기 쉽게 데이터를 가공하는 데 사용되며, 데이터 셋을 요약, 압축하는 데도 활용된다. 데이터들을 군집화하는 방식에는 여러 가지가 있다. 대표적으로 계층적(hierarchical) 군집화와 분할적(partitional) 군집화가 있다. 계층적 군집화는 군집들이 포함관계를 통해 계층을 이루도록 구성하는 반면 분할적 군집화는 서로 중첩되지 않는 군집으로 데이터들을 나누어 가지도록 구성하는 방식이다. 이외에도 고려할 수 있는 군집화의 특성에는 여러 종류가 있다. 이외에..
초평면(hyperplane)은 임의의 공간을 양분하는 평면이다. 특정 차원에 국한되지 않고 모든 차원에 대해 1만큼 적은 차원을 가지며 공간을 양분한다. 데이터들이 좌표 공간에 놓여있을 때 클래스에 따라 데이터를 구분하는 초평면을 어떻게 그리는 것이 가장 좋을까? 초평면과 가장 가까운 데이터를 Support vector라고 하고 둘 사이의 거리를 Margin이라고 할 때, Margin을 최대화하는 초평면이 가장 좋다고 판단한다. Margin이 클수록 일반화 오차가 감소하며 작을수록 작은 섭동에 의해 클래스 분류가 바뀔 수 있어 과적합 문제를 발생시킨다. 초평면은 오로지 Support vectors에 의해 결정되며 다른 어떠한 학습 데이터들은 영향을 주지 못한다. 데이터가 섞여 있어 데이터의 클래스를 하나..
비선형분류모형 중 k-근접 이웃 분류(k-neareast neighbor : k-NN)가 있다. 이 분류기는 어떠한 데이터가 입력되면 입력 변수를 기준으로 주변의 데이터들 간의 거리를 계산하고 가장 “가까운” k개의 데이터들이 주로 속한 클래스에 할당시키는 방식으로 분류를 진행한다. 가까움에 대해 여러 가지의 정의가 있을 수 있다. 입력 변수 값이 연속적인 경우, 유클리디안 거리, 마할라노비스 거리, 코사인 유사도, 민코프스키 거리, 맨해튼 거리 등 여러 가지 평가 척도가 존재한다. 일상 생활에서 가장 많이 쓰이는 거리의 개념은 유클리디안 거리에 해당한다. 맨해튼 거리의 경우 위치 간의 수직, 수평 거리의 합을 의미하며, 민코프스키 거리는 유클리디안, 맨해튼 거리 등을 모두 포함할 수 있는 큰 범주의 거..
- Total
- Today
- Yesterday
- backtracking
- 너비우선탐색
- C++
- 이분법
- 애니메이션
- Git
- 백트래킹
- 큐
- C언어
- 영어 어휘
- 정렬
- 베릴로그
- 메이플스토리
- 알고리즘
- 이진탐색
- 스택
- recursive
- BOJ
- 건이의 특제 떡국 끓이기
- 구조체
- 재귀함수
- 취미
- 영화
- Verilog
- BFS
- Push
- 구현
- gem5
- 백준
- 완전탐색
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |