목록인공지능 (21)
K 개발자
수동 미분 미적분을 사용하여 편도함수를 유도 함수가 아주 복잡해지면 번거롭고 실수할 위험이 크다. 유한 차분 근사finite difference approximation $x_ {0}$에서 함수 $h(x)$의 도함수 ${h}'(x_ {0})$는 그 포인트에서 함수의 기울기 ($x$가 포인트 $x_ {0}$에 무한히 가까워질 때 두 점을 지나는 접선의 기울기) ${h}'(x_ {0})=\lim_{x \to x_ {0}}\frac{h(x)-h(x_ {0})}{x-x_ {0}}=\lim_{\varepsilon \to 0}\frac{h(x_ {0}+\varepsilon)-h(x_ {0})}{\varepsilon}$ (뉴턴 차분몫Newton's difference quotient) 결과가 정확하지는 않다. (다른..
텐서플로 훑어보기 텐서플로는 강력한 수치 계산용 라이브러리 특히 대규모 머신러닝에 잘 맞도록 튜닝되어 있다. (하지만 계산량이 많이 필요한 어떤 작업에도 사용 가능) 핵심 구조는 넘파이와 비슷하지만 GPU를 지원 (여러 장치와 서버에 대해서) 분산 컴퓨팅을 지원 일종의 JITjust-in-time 컴파일러를 포함한다. 속도를 높이고 메모리 사용량을 줄이기 위해 계산을 최적화한다. 이를 위해 파이썬 함수에서 계산 그래프computation graph를 추출한 다음 최적화하고 (e.g. 사용하지 않는 노드node를 가지치기) 효율적으로 실행 (e.g. 독립적인 연산을 자동으로 병렬 실행) 계산 그래프는 플랫폼에 중립적인 포맷으로 내보낼 수 있으므로 한 환경(e.g. 리눅스에 있는 파이썬)에서 텐서플로 모델을..
그레이디언트 소실과 폭주 문제 그레이디언트 소실vanishing gradient : 알고리즘이 하위층으로 진행될수록 그레이디언트가 점점 작아지는 경우 (경사 하강법이 하위층의 연결 가중치를 변경되지 않은 채로 둔다면 훈련이 좋은 솔루션으로 수렴되지 않을 것이다.) 그레이디언트 폭주exploding gradient : 그레이디언트가 점점 커져서 여러 층이 비정상적으로 큰 가중치로 갱신되면 알고리즘은 발산diverse 글로럿Glorot과 He 초기화initialization 각 층의 연결 가중치를 밑에 기술한 방식대로 무작위로 초기화 평균이 0이고 분산이 $\sigma^{2}$인 정규분포 또는 $-r$과 $+r$ 사이의 균등분포 $(r=\sqrt{3\sigma^{2}})$ 초기화 전략 활성화 함수 $\sig..
생물학적 뉴런에서 인공 뉴런까지 퍼셉트론perceptron 가장 간단한 인공 신경망 구조 중 하나로 TLUthreshold logic unit 또는 LTUlinear threshold unit라고 불리는 조금 다른 형태의 인공 뉴런을 기반 TLU는 입력의 가중치 합을 계산한 뒤 계산된 합에 계단 함수step function를 적용하여 결과를 출력 (i.e. $h_ {w}(x)=step(z)$, $z=x^{T}w$) 헤비사이드 계단 함수Heaviside step function 퍼셉트론에서 일반적으로 사용하는 계단 함수 (임곗값을 0으로 가정) 부호 함수sign function를 대신 사용하기도 한다. $\text{heaviside}(z)=\begin{cases}0 & z
군집 군집clustering : 비슷한 샘플을 구별해 하나의 클러스터 또는 비슷한 샘플의 그룹으로 할당하는 작업 클러스터cluster : 보편적인 정의는 없다. 상황에 따라 다르고 어떤 모양이든 될 수 있고 종류가 아주 많다. 센트로이드centroid : 클러스터의 특정 포인트 k-평균 각 클러스터의 중심을 찾고 가장 가까운 클러스터에 샘플을 할당 군집에서 각 샘플의 레이블은 알고리즘이 샘플에 할당한 클러스터의 인덱스 k-평균 알고리즘 처음에 센트로이드를 랜덤하게 선정 샘플에 레이블을 할당하고 센트로이드를 업데이트하는 식으로 센트로이드에 변화가 없을 때까지 계속 반복 (일반적으로 이 횟수는 매우 작다.) 센트로이드 초기화 방법 센트로이드 위치를 알 수 있다면 (e.g. 또 다른 군집 알고리즘을 먼저 실행..
차원 축소를 위한 접근 방법 투영projection 예를 들어 3차원 데이터셋에 모든 훈련 샘플이 거의 평면 형태로 놓여 있는 경우 이것이 고차원(3D) 공간에 있는 저차원(2D) 부분 공간subspace 모든 훈련 샘플을 이 부분 공간에 수직으로 (i.e. 샘플과 평면 사이의 가장 짧은 직선을 따라) 투영하면 2D 데이터셋을 얻는다. 매니폴드 학습manifold learning 많은 차원 축소 알고리즘이 훈련 샘플이 놓여 있는 매니폴드를 모델링하는 식으로 작동 대부분 실제 고차원 데이터셋이 더 낮은 저차원 매니폴드에 가깝게 놓여 있다는 매니폴드 가정manifold assumption 또는 매니폴드 가설manifold hypothesis에 근거 매니폴드 가정은 처리해야 할 작업(e.g. 분류나 회귀)이 ..
투표 기반 분류기 각기 다른 훈련 알고리즘을 사용 직접 투표hard voting 각 분류기의 예측을 모아서 가장 많이 선택된 클래스를 예측 간접 투표soft voting 모든 분류기가 클래스의 확률을 예측할 수 있으면, 개별 분류기의 예측을 평균 내어 확률이 가장 높은 클래스를 예측 확률이 높은 투표에 비중을 더 두기 때문에 직접 투표 방식보다 성능이 높다. 배깅과 페이스팅 같은 알고리즘을 사용하고 훈련 세트의 서브셋을 무작위로 구성하여 분류기를 각기 다르게 학습 분류일 때는 통계적 최빈값statistical mode(i.e. 가장 많은 예측 결과)이고 회귀에 대해서는 평균을 계산 배깅bagging 훈련 세트에서 중복을 허용하여 샘플링하는 방식 전반적으로 배깅이 더 나은 모델을 만든다. 페이스팅pasti..
결정 트리 학습과 시각화 루트 노드root node : 깊이가 0인 맨 꼭대기의 노드 리프 노드leaf node : 자식 노드를 가지지 않는 노드 CARTclassification and regression tree 훈련 알고리즘 먼저 크기에 따른 가중치가 적용된 가장 순수한 서브셋으로 나눌 수 있는 ($k$,$t_ {k}$) 짝을 찾는다. 훈련 세트를 하나의 특성 $k$의 임곗값 $t_ {k}$를 사용해 두 개의 서브셋으로 나눈다. CART 알고리즘이 훈련 세트를 성공적으로 둘로 나누었다면 같은 방식으로 서브셋을 또 나누고 그다음엔 서브셋의 서브셋을 나누고 이런 식으로 계속 반복 이 과정은 최대 깊이가 되면 중지하거나 불순도를 줄이는 분할을 찾을 수 없을 때 멈추게 된다. 분류에 대한 CART 비용 함..