DL 11

[논문 리뷰] U-GAT-IT(GAN)

0. KT 에이블스쿨에서 마무리 과정으로 빅프로젝트를 진행하고 있다. 여기서 내가 주로 맡은 분야는 논문 ugatit을 이용해 사용자가 이용할 수 있게 api화 하고 그걸 django를 이용해 웹 페이지를 만들어 배포하는 것이였다. 이 글에서는 ugatit을 직접 학습 시키는데 1Epoch당 227시간이 걸려 할 수 없었지만 그 이론이 기존 cycle gan과 다르게 재밌고 질문 대비를 위해 부족하지만 최대한 공부한 만큼 남겨 보려한다. 이후 어떻게 flask를 이용해 api로 만들었고 어떻게 그것을 이용해 장고에서 배포했는지도 빠른 시일내에 남기겠다. 1. Introduction cycle Gan, UGATIT 같은 GAN 방식은 소위 unsupervised image-to-image translati..

DL 2022.05.13

GAN(Generative Adversarial Networks)

개요가짜 데이터를 생성하는 신기한 알고리즘이다. 이상치 탐지를 할 때 오토인코더도 이와 비슷한 과정이였고 실제로 사용하려 했으나 너무 어려울 것 같아 뒤로 밀었던 알고리즘이다.GAN의 목적은 갖고 있는 데이터를 모방하여 새로운 데이터를 만드는 것이며, 두개의 네트워크가 서로 목표를 달성하기 위해 적대적으로 겨루는 구조를 갖고 있다.쉽고 유명한 예시경찰과 위조지폐범이 있다고 가정하자Generator(위조지폐범) G라고 부르겠다 . Discriminator(경찰) D라고 부르겠다.G의 목적은 D를 속이면서 최대한 진짜 지폐와 비슷하게 만드는 것이고 D의 목적은 가짜 지폐와 진짜 지폐를 잘 구별해 내는 것이다.(오랜만에 캐치미 이프유캔 땡기네..)G가 너무 일을 잘할수록 D도 그걸 추적하기 위해 분류 능력이 ..

DL 2022.01.10

LSTM(Long Short-Term Memory)

개요RNN 에서의 문제점 : 입력과 출력 시점이 멀어질수록 학습이 잘 안되는 현상(Long-Term Dependency)ex) “나는 민수와 밥을 먹고 있다. 그는 피자를 좋아해.” 라는 짧은 문장에서 “그” 는 “민수”라는 것을 쉽게 알 수 있다. 하지만 “나는 오늘 오후에 민수랑 만나기로했다. 근데 나가기전 지갑을 놓고와서 조금 늦었다. 그리고 밥을 먹기로 했는데 민수가 피자를 좋아해서 그냥 피자를 먹기로 했다.” 이렇게 길어지면 “그” 에 대한 판단을 하려면 문장 앞까지 가야한다.이에서 보듯이 RNN은 가중치와 활성함수가 누적되어 곱해지기 때문에 결과는 과거의 정보를 점점 잊는다. LSTM 의 기본구조RNN에서는 하나의 활성함수를 사용해 문제를 해결했는데 LSTM은 다양한 활성함수를 사용하고 반복하..

DL 2022.01.10

RNN(Recurrent Neural Network

RNN : 음성 인식과 자연어 처리같은 순차적 데이터에 사용되는 LSTM or GRU의 근간이 되는 모델입력층 → 출력층 으로 보내는 동시에 다음 시점의 은닉층 으로도 입력이 흐르는 형태이 사진에서 확인하듯이 xtx_txt​ 입력데이터와 ht−1h_{t-1}ht−1​을 입력받아서 다음 가중치를 이용해 최종값을 출력한다.은닉층(RNN Cell) : ht=tanh(Wxxt+Whht−1)h_t = tanh(W_xx_t + W_hh_{t-1})ht​=tanh(Wx​xt​+Wh​ht−1​)출력층 : yt=fy(Whht)y_t = f_y(W_hh_t)yt​=fy​(Wh​ht​)RNN은 다양한 입력, 출력 시퀀스에 따라 유연하게 네트워크 구조를 설계할 수 있으며, 그만큼 여러문제에 적용가능.One to Man..

DL 2022.01.10

딥러닝 핵심 알고리즘 (batch,gra_desc,avti_func)

딥러닝의 성능을 높여주는 핵심 알고리즘에 대해서 설명하겠다.미니배치(Mini Batch)딥러닝의 경우 머신러닝에 비해 대용량의 데이터가 필요하다.데이터가 무척 크고 복잡한 계산을 함으로써 메모리 한계에 부딪히기도 하고 딥러닝을 돌리는데 아주 좋은 컴퓨터를 쓰는 ai 연구 팀도 돌리는데 하루가 걸린다고 한다. 그래서! 작은 단위로 나누어서 학습한다. 앞에서 설명했던 학습, 검증, 테스트 데이터로 나누는 것과는 다르다.미니 배치1 / 미니배치 2/ 미니배치3 / 미니배치 4 ...일단 미니 배치만큼 경사하강법이나 역전파 알고리즘을 써서 다음 미니 배치로 넘어간다이렇게 모든 배치를 돌면 1epoch가 끝났다고 한다.ex) 데이터가 2000개 이고 배치 크기를 200으로 하자그럼 Iteration(파라미터 업데..

DL 2022.01.09

딥러닝)Optimizer 알고리즘

업데이트 알고리즘너무 많은 것이 있고 굳이 안 짚고 넘어가도 되지만 그래도 수학과로서 수치최적화에 신경을 써야하므로 나중에 따로 정리하겠지만 몇가지 짚고 나가겠다.SGD데이터 1개를 본후에 weight update를 진행한다. 그렇게 모든 데이터를 한번씩 수행그 다음 데이터셋을 랜덤하게 섞어준다.그리고 다시 1개씩 업데이트를 해준다.이렇게 하나하나씩 보면서 업데이트 하는 방식이 답답해서 mini-batch -gd 라는 방법이 나왔다고 한다.데이터 B개를 본 후 업데이트한다.그리고 또 좋은 점은 병렬방식으로 진행되서 각 미니 배치간의 loss를 구하고 평균을 내서 update하기 때문에 좀 더 빠르고 잘 계산 할 수 있다.하지만 이런 경사하강법은 고질적인 문제가 있다.바로 saddle point와 기울기가..

DL 2022.01.09

2.1 딥러닝

2.1 딥러닝이란?머신러닝에서 설명 했듯이 보통 비정형데이터(영상,언어) 같은 것에 사용하고 분석가의 개입없이 오로지 컴퓨터에게 설명을 맡긴다.ex) 이미지에 대해서는 잘 아니까 음성 인식 시스템에 대해 설명해보자.전통 : 임의로 생성한 특징 오디오에서 추출, 음소라고 불리는 발음의 기본 요소를 인식해서 인식된 음소를 나열한 후 텍스트 문장으로 전환현재 : 음성이 음력되면 바로 출력까지 뉴럴네트워크가 작동(오 개쩌네?) 2.2 딥러닝 발전과정2.2.1 퍼셉트론(perceptron)사람의 뇌에는 뉴런이 존재.딥러닝도 이와 유사하게 퍼셉트론이 뉴런의 역할을 한다.뉴런과 마찬가지로 데이터를 입력받아 가중히와 입력값을 조합하여 다음 퍼셉트론으로 전달하는 구조그림을 하나하나 뜯어보자.x는 입력신호, y는 출력값,..

DL 2022.01.03

[딥러닝]역전파 - Back Propagation

0. 학교에서 역전파 알고리즘을 배우고 손으로 직접 계산까지해보고 과제풀이도 하고 시험에도 출제되었다.다층 퍼셉트론에 대해 간략히 쓰다가 역전파에 대해서 간단하게 설명이 막혀버려서 ... 이렇게 글을 쓴다. 생각보다 마무리 부분을 더 잘 쓴거 같다. 그냥 계산 과정 보기 싫으면 마무리만 보면 핵심만 요약 했다.너무 복잡하고 내가 직접한 것은 올리긴했지만 그래도 컴터로 작업하는건 너무 힘들어서 참고좀 했다... 감사합니다...어떤 싸움을 해오신겁니까출처 : https://wikidocs.net/37406 1. Feed Forward(순전파) 다음 그림에서 순전파를 진행하겠다.처음에는 가중치 값을 랜덤하게 준다.각 입력은 입력층에서 은닉층 방향으로 향하면서 각 입력에 해당하는 가중치와 곱해지고, 결과적으로 ..

DL 2022.01.03