rnjsdb72.log
로그인
rnjsdb72.log
로그인
[D&A 운영진 딥러닝 스터디] 5주차 2차시
권유진
·
2022년 2월 10일
팔로우
0
AutoML
Continual Learning
Domain adaptation
Object Detection
gan
meta learning
reinforcement learning
segmentation
강화학습
객체탐지
딥러닝
자습
0
D&A 운영진 스터디
목록 보기
10/17
GAN(Generative Adversarial Networks)
Generator와 Discriminator가 서로 대립적(Adversarial)으로 학습해가며 점차 성능 개선
Generator는 데이터 생성
Discriminator을 최대한 속이려고 노력
Discriminator는 만들어진 데이터 평가
진짜와 가짜 데이터를 구분하려고 노력
Minimax Problem
Generator은 Minimize를 위해 노력하고 Discriminator은 maximize하려고 노력
Discriminator은
D
(
X
)
=
1
,
D
(
G
(
z
)
)
=
0
D(X)=1, D(G(z))=0
D
(
X
)
=
1
,
D
(
G
(
z
)
)
=
0
일 때 최대(진짜 데이터를 1, 가짜 데이터를 0으로 예측)
Generator은
D
(
G
(
z
)
)
=
1
D(G(z))=1
D
(
G
(
z
)
)
=
1
일 때 최소(가짜 데이터를 1로 속임)
각각 자신의 역할을 수행함으로써 진짜 분포와 가짜 분포가 같아진다.
m
i
n
m
a
x
V
(
D
,
G
)
=
E
x
∼
P
d
a
t
a
(
X
)
[
log
D
(
X
)
]
+
E
z
∼
P
z
(
Z
)
[
log
(
1
−
D
(
G
(
z
)
)
)
]
minmaxV(D,G) = E_{x \sim P_{data}(X)}[\log D(X)] + E_{z \sim P_{z(Z)}} [\log (1-D(G(z)))]
m
i
n
m
a
x
V
(
D
,
G
)
=
E
x
∼
P
d
a
t
a
(
X
)
[
lo
g
D
(
X
)
]
+
E
z
∼
P
z
(
Z
)
[
lo
g
(
1
−
D
(
G
(
z
)
)
)
]
학습 과정
Discriminator의 input으로 가짜/진짜 데이터 입력
Generator에 Input Noise를 넣어 가짜 데이터를 만들고 진짜 데이터를 각각 Discriminator에 입력
가짜는 0, 진짜는 1로 예측
Weight Freezing
D의 오차로부터 G까지 Back Propagation을 진행할 때, D의 오차만 전파하고 가중치를 업데이트하지 않는다.
D와 G가 번갈아 가며 학습
위 과정 무수히 반복 시, 구분할 확률이 0.5에 수렴
단점
Mode Collapse: 특정 데이터를 만들더니 Discriminator가 속는 점을 이용해 그 데이터만 만들려는 특징
Domain Adaptation, Style Transfer 등 다양한 분야로 발전
다양한 GAN 모델
BigGAN
: 고품질 이미지를 생성하는 모델(현재 더욱 성능이 좋은 모델 등장)
CycleGAN
: Input과 Output의 서로 간의 다양한 도메인을 바꿔주는 모델 (Style Transfer- 가장 많이 쓰임)
Deep Photo Style Transfer
: 왼쪽 그림 Contents에 중간 그림의 Style을 입히는 모델, Cycle GAN 기반 모델
Style Transfer for Anime Sktches
: 연필이나 펜으로 그린 그림에 자동 채색
StarGAN
: Input 이미지에 대해 참조 이미지의 피부 표정 등을 Transfer
CAN
: 예술품을 생성해내는 GAN 모델
SRGAN
: 저해상도 이미지를 고해상도 이미지로 복원
Globally and Locally Consistent Image Completion
: 랜덤하게 사진 속을 지웠을 때 이를 채워주는 GAN 모델
강화학습(Reinforcement Learning)
현재 상태(State)에서 어떤 행동(Action)을 취해야 먼 미래에 보상(Reward)를 최대로 받을지 학습
수 많은 시뮬레이션 필요
주로 게임 환경에서 개발
Q-Learning과 SARSA 알고리즘이 기초가 되는 알고리즘
딥러닝과 결합하면서 심층 강화학습(Deep Reinforcement Learning) 개발
Start 지점에서 Goal로 최단거리로 이동하는 것이 목표
일단 움직여보게 한다!
현재의 위치를 state, 취하는 행동을 action
각 action이 좋은 action인지 아닌지 판단하는 근거를 Reward(보상)
Reward로 Q-value 설정
가장 높은 Q-value 갖는 Action을 취함
Optimal한 action을 구하는 것이 아니라 최악의 action 제외한 나머지 action 선택
지금보다는 먼 미래에 목표를 달성할 수 있는 action을 선택
먼 미래에 좋다는 feedback을 주기 위해
할인율(Discount Factor)
도입
현재 reward + 다음 state에서 받을 수 있는 reward의 합
r
r
r
: reward,
γ
\gamma
γ
: 할인율
V
π
=
∏
i
=
0
∞
γ
i
r
t
+
i
π
∗
=
arg
max
π
V
π
V^{\pi} = \prod_{i=0}^{\infty} \gamma^i r_{t+i}\\ \pi^* = \arg \max_{\pi} V^{\pi}
V
π
=
i
=
0
∏
∞
γ
i
r
t
+
i
π
∗
=
ar
g
π
max
V
π
처음에는 무작위로 action 취하지만, 무수히 반복 학습 시 Optimum Policy 얻을 수 있음
수많은 경우의 수가 존재하므로 Q-Learning과 Deep Learning 접목해 Deep Q-Learning 개발
알파고도 이의 일종
Domain Adaptation
특정 도메인 내의 데이터가 부족할 때, 비슷한 도메인 정보를 이용해 문제 해결
전이 학습이 일반적으로 사용되지만, 이것도 최소한의 라벨링된 데이터가 필요
사람이 직접 하기엔 비용이 많이 들기 때문에, 비슷한 도메인에 접근해 데이터 활용
우리가 풀어야 할 도메인을 Target Domain, 이용할 수 있는 도메인은 Source Domain
대규모 Source Data로 학습한 모델로 Target Data 데이터 결과를 예측하는 리스크를 최소화하는 방향으로 학습
구조
Input에 대한 특징 추출
Source Domain의 Data를 이용해 학습
Target Domain의 Data를 이용해 학습
2의 Loss는 Gradient를 정상적으로 전달하고, 3의 Gradient는 음수 값으로 전달
Source Domain, Target Domain 데이터를 구분할 수 없도록 1번 레이어 학습
H-Divergence, VC-Dimension 개념 사용
Continual Learning
이미 학습된 모델에 재학습을 하지 않고 새로운 클래스를 분류할 수 있도록 추가하도록 학습
매우 큰 모델의 경우에는 재학습이 비효율적이기 때문
Catastrophic Forgetting
이미 학습된 모델에 새로운 클래스에 대한 데이터와 라벨을 추가로 학습한다면 이전의 학습 능력 소멸
이를 최소화하는 학습방식이 Continual Learning
학습 순서
Selective Retraining
: 동일한 모델 구조에 대해 (t-1) 시점까지 Task1에 대해 학습한 모델의 파라미터와 t시점에 Task2에 대해 학습한 모델의 파라미터 간 관계가 높은 파라미터를 따로 추출해 다시 학습
Task1과 Task2를 공통으로 잘할 수 있는 파라미터를 따로 추출해 해당 파라미터 값 새로 학습
Dynamic Network Expansion
: 파라미터 값이 비교적 작은 노드 제거하고 모델의 크기 늘리는 방향 도입
Selective Retraining이 원활하게 진행되지 않는 경우(Loss가 Threshold보다 낮아지지 않을 때) 원활하게 만드는 과정
Network Split/Duplication
: 기존 노드 값을 복사해 모델 구조에 변화
위 과정에서 기존 노드 값이 크게 변했을 때 Catastrophic Forgetting 현상이 발생해 노드의 원래 역할을 수행하지 못할 수 있기 때문
새로운 환경에서 학습을 이어가며 궁극적인 AI 모델 구현에 큰 도움이 될 것
Object Detection
이미지, 비디오 내에서 특정 객체를 탐지하는 연구 분야
Classification + 위치 정보 예측
위치 정보: 특정 지점을 표현하는 (x,y)와 그 지점으로부터 가로, 세로 길이를 의미하는 (w, h) 예측
(x, y, w ,h): Boundary Box
Regional Proposal 후, Classification을 하는 2 Stage 방식과 동시에 처리하는 1 Stage 방식 존재
1 Stage 방식이 2 Stage 방식보다 더 빠르지만, 정확도는 떨어짐
실무에서는 속도가 매우 중요하기 때문에 1 Stage 방식 선호
CNN 기반 모델 사용
여기서 이용되는 기본 CNN 모델을 Backbone 모델이라고 함
1 Stage 방식은 YOLO 계열의 알고리즘, 2 Stage 방식에서는 RCNN 계열 알고리즘이 연구
You only look once
Regional Convolutional Neural Network
Segmentation
이미지 및 비디오 내에 있는 모든 픽셀에 대해 특정 클래스로 예측
Object Detection의 사각형으로 예측해 해당 물체가 아닌 다른 영역이 존재하는 단점 보완
픽셀(이미지, 비디오의 최소 표현 단위) 수준으로 접근해 각 픽셀별로 특정 클래스 예측
target이 아닌 부분은 검은색으로 표현해 클래스 및 위치 정보를 더욱 정확히 예측
여러 물체가 바로 옆에 존재할 경우 하나의 물체로 인식
사람 5명이 붙어있다면, 머리가 5개이고 다리가 7개인 사람 1명으로 예측
각 물체별로 해당하는 픽셀 값을 구분하고, 구분된 값에 대해 클래스를 예측하는 Instance Segmentation 등장
Meta Learning
학습하는 방법을 학습하는 것
딥러닝은 라벨링된 대규모 데이터가 존재하면 모든 함수를 근사화로 표현
하지만 특정 클래스로 구분하지 어려운 noise일 수도 있고 label 정보가 존재하지 않을 수 도 있다.
적은 라벨 정보를 바탕으로 이뤄진 데이터 수를 학습해 문제 해결하는
준지도학습(Semi-Supervised Learning)
발전
최소한의 업데이트로 최소의 Loss 값을 가질 수 있도록 하는 것을 목표로 설정
학습이 빠르게 되는 초기 파라미터 분포를 찾는 것
이외에도 여러 방법론 존재
AutoML
기존에는 사람이 하이퍼파라미터를 설정하여 학습을 진행했지만, 컴퓨터가 스스로 설계하도록 하는 연구
Auto Augmentation, Neural Architecture Search 등
Auto Augmentation: Data Augmentation 자동으로 설계해 학습 효율을 최대로 끌어올림
Strategt S를 샘플링(Operation Type, Probability, Magnitude로 구성)
자식 네트워크 학습 후 Validation Set에 대한 정확도를 reward로 설정
reward를 RNN Controller에게 알려줌
보상을 최대화하는 방식으로 강화학습
성능 지표는 Accuracy로 지정
Neural Architecture Search: 딥러닝 모델 구조를 자동으로 설계
RNN Controller의 output 값을 다음 시점의 input으로 이용
각 레이어 별로 Filter Height, Filter Width, Stride Height, Stride Width, Number of Filters를 출력해 자식 네트워크의 세부 내용 조정
이로 얻은 validation set의 정확도를 보상으로 RNN Controller 업데이트
사람의 개입 없이 좋은 성능의 모델을 얻을 수 있다.
어마어마한 컴퓨팅 자원 소모
참고
파이썬 딥러닝 파이토치 (이경택, 방성수, 안상준)
권유진
데이터사이언스를 공부하는 권유진입니다.
팔로우
이전 포스트
[D&A 운영진 딥러닝 스터디] 5주차 1차시
다음 포스트
[D&A 운영진 git 스터디] git, github
0개의 댓글
댓글 작성