목록딥러닝 (8)
K 개발자
보상을 최적화하기 위한 학습 강화 학습reinforcement learning(RL)에서 소프트웨어 에이전트agent는 관측observation을 하고 주어진 환경environment에서 행동action을 하고 그 결과로 보상reward을 받는다. 에이전트의 목적은 보상의 장기간 기대치를 최대로 만드는 행동을 학습하는 것 간단히 말해 에이전트는 환경 안에서 행동하고 시행착오를 겪으며 기쁨(양positive의 보상)이 최대가 되고 아픔(음negative의 보상)이 최소가 되도록 학습 양의 보상이 전혀 없을 수도 있다. (e.g. 에이전트가 미로 속을 움직인다면 매 타임 스텝마다 음의 보상을 받기 때문에 가능한 한 빨리 탈출구를 찾는 것이 좋을 것) 정책 탐색 소프트웨어 에이전트가 행동을 결정하기 위해 사용..
오토인코더autoencoder 오토인코더는 입력을 받아 효율적인 내부 표현(잠재 표현latent representation, 코딩coding)으로 바꾸고 (바라건대) 입력과 가장 가까운 어떤 것을 출력 오토인코더는 항상 두 부분으로 구성 입력을 내부 표현으로 바꾸는 인코더encoder(또는 인지 네트워크recognition network)와 내부 표현을 출력으로 바꾸는 디코더decoder(또는 생성 네트워크generative network) 출력층의 뉴런 수가 입력 개수와 동일하다는 것을 제외하면, 일반적으로 오토인코더는 다층 퍼셉트론(MLP)과 구조가 동일 오토인코더가 입력을 재구성하기 때문에 출력을 종종 재구성reconstruction이라고 부른다. 비용 함수는 재구성이 입력과 다를 때 모델에 벌점을..
Char-RNN RNN을 훈련하여 문장에서 다음 글자를 예측 (한 번에 한 글자씩 새로운 텍스트를 생성할 수 있다.) 순차 데이터셋을 나누는 방법 텍스트에 있는 글자는 섞으면 안 된다. 훈련 세트, 검증 세트, 테스트 세트가 중복되지 않도록 만드는 것이 중요 (두 세트 사이에 문장이 걸치지 않고 완전히 분리될 수 있도록 세트 사이에 간격을 두는 것도 좋은 생각) 시계열을 다룰 때는 보통 시간에 따라 나눈다. (경우에 따라 훈련할 시간 간격을 더 길게 하기 위해 다른 차원을 기준으로 나눌 수도 있지만 시간에 따라 나누는 것이 안전) 암묵적으로 RNN이 과거(훈련 세트)에서 학습하는 패턴이 미래에도 등장한다고 가정 다른 말로 하면 이 시계열 데이터가 (넓은 의미에서) 변하지 않는다stationary고 가정 ..
순환 뉴런recurrent neuron과 순환 층 순환 신경망recurrent neural networks은 (활성화 신호가 입력층에서 출력층 한 방향으로만 흐르는) 피드포워드 신경망과 비슷하지만 뒤쪽으로 순환하는 연결도 있다는 점이 다르다. (입력을 받아 출력을 만들고 자신에게도 출력을 보내는 뉴런으로 구성) 각 타임 스텝time step $t$ (또는 프레임frame) 마다 순환 뉴런은 $x_ {(t)}$와 이전 타임 스텝의 출력인 $y_ {(t-1)}$을 입력으로 받는다. (첫 번째 타임 스텝에서는 이전 출력이 없으므로 일반적으로 0으로 설정) 각 순환 뉴런은 입력 $x_ {(t)}$와 이전 타임 스텝의 출력 $y_ {(t-1)}$을 위한 두 벌의 가중치를 가진다. (이 가중치 벡터를 $w_ {x}..
합성곱 층convolutional layer 첫 번째 합성곱 층의 뉴런은 입력 이미지의 모든 픽셀에 연결되는 것이 아니라 합성곱 층 뉴런의 수용장 안에 있는 픽셀에만 연결 두 번째 합성곱 층에 있는 각 뉴런은 첫 번째 층의 작은 사각 영역 안에 위치한 뉴런에 연결 이런 구조는 네트워크가 첫 번째 은닉층에서는 작은 저수준 특성에 집중하고, 그다음 은닉층에서는 더 큰 고수준 특성으로 조합해나가도록 도와준다. 수용장 사이에 간격을 두어 큰 입력층을 훨씬 작은 층에 연결하는 것도 가능 (한 수용장과 다음 수용장 사이 간격을 스트라이드stride라고 한다.) 필터filter(합성곱 커널convolution kernel) 뉴런의 가중치는 수용장 크기의 작은 이미지로 표현될 수 있다. 층의 전체 뉴런에 적용된 하나의..
그레이디언트 소실과 폭주 문제 그레이디언트 소실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
머신러닝 데이터에서부터 학습하도록 컴퓨터를 프로그래밍하는 과학 머신러닝이 뛰어난 분야 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제 : 하나의 머신러닝 모델이 코드를 간단하게 만들고 전통적인 방법보다 더 잘 수행되도록 할 수 있다. 전통적인 방식으로는 해결 방법이 없는 복잡한 문제 : 가장 뛰어난 머신러닝 기법으로 해결 방법을 찾을 수 있다. 유동적인 환경 : 머신러닝 시스템은 새로운 데이터에 적응할 수 있다. 복잡한 문제와 대량의 데이터에서 통찰 얻기(데이터 마이닝data mining) 머신러닝 시스템의 종류 지도, 비지도, 준지도, 강화 학습 (사람의 감독하에 훈련하는 것인지 아닌지) 온라인 학습과 배치 학습 (실시간으로 점진적인 학습을 하는지 아닌지) 사례 기반 학습과 모델 기반 학습 (단..