728x90

Goolge colab이란?

구글 코랩은 구글에서 AI 개발자들을 위해 무료로 GPU를 사용할 수 있도록 해주는 클라우드 서비스입니다.

Colab에서 Keras, Tansorflow, PyTorch, OPenCV 등 다양한 라이브러리를 무료로 사용할 수 있습니다. 

 

그렇기 때문에 colab을 사용하려면 당연히 구글 계정이 필요합니다. 없으면 구글에서 쉽게 계정을 만들 수 있습니다.

 

구글 코랩 시작하기

아래 웹 브라우저를 통해 코랩 사이트로 들어갑니다.

 http://colab.research.google.com

 

Google Colaboratory

 

colab.research.google.com

그림1. 코랩 시작 페이지

처음 사용하시는 분들은 'Colaboratory에 오신것을 환영합니다' 파일을 눌러 소개글을 확인해 보시면 좋을 것 같습니다.

 

본격적으로 코랩을 사용하려면 아래 파란색 글씨로 새PYTHON3 노트 버튼을 눌러 파이썬 노트북을 켜줍니다.

또 다른 방법으로는 파일에 들어가서 새 파이썬 노트를 클릭하는 방법이 있습니다.

그림2. 메뉴에서 '파일' -> '새 Python 노트'로 파이썬 노트북을 키는 방법

 

python 노트북을 열게 되면 다음과 같은 화면이 뜨게 됩니다.

그림3. 노트북 처음 화면

 

 

기본적으로 파이썬 노트북은 노트라인과 텍슽트 라인으로 구성되어 있습니다.

코드라인은 파이썬 형식으로 하이라이팅 되어 있습니다.

 

그림4. 코드라인과 텍스트라인

주피터 노트북을 사용해 보신 분들이라면 쉽게 코랩을 사용할 수 있습니다.

 

 

 

 

GPU 사용하기

colab에서 GPU를 사용하기 위해서는 런타임 유형을 변경해야합니다. colab 화면 상단 툴바에서 

'런타임' -> '런타임 유형 변경' -> '하드웨어 가속기' 설정을 NONE에서 GPU로 변경해줍니다.

그림5. GPU 설정하기

GPU로 설정해준 다음에는  !nvidia-smi  명령어로 GPU사양을 확인할 수 있습니다.

 

 

구글 드라이브 연동하기

코랩과 구글 드라이브를 연동해서 드라이브에 저장되어 있떤 데이터 파일을 쉽게 열고 저장할 수 있는데요

쉽고 간단하게 구글 드라이브와 코랩을 연동할 수 있습니다.

 

옆에 있는 작은 '>' 그림을 누르면 숨겨있던 창이 뜹니다. '파일'에 들어가 드라이브 마운트 버튼을 눌러줍니다.

 

 

그러면 이런 코드가 생성되는데요, run을 눌러 코드를 실행시켜 줍니다.

그러면 어떤 url이 뜨는데 누르고 들어가서 인증키를 받아야 합니다.

연결하고자하는 계정으로 로그인을 하면 인증키 문자열을 알려줍니다

 

받은 문자열을 아까 run시켰던 노트북에 넣어주면 끝!

 

연동한 드라이브에서 파이썬 노트북을 생성해 저장할 때에는 .ipynb 형식으로 저장하면 됩니다.

또한 주피터 노트북 파일을 구글 드라이브에 업로드 해놓으면 코랩에서 연동하여 사용할 수 있습니다.

이때도 .ipynb 파일을 열때 연결할 앱으로 Colaboratory를 선택하면 구글 코랩에서 열립니다.

 

 

아주 쉬운 코랩 사용하기 리뷰였습니다.

'IT' 카테고리의 다른 글

Git download_깃 다운 하기& visual code 다운하기  (0) 2018.07.09
vi 명령어 알아보기  (0) 2018.05.14
간단한 리눅스 명령어 알아보기  (0) 2018.05.08
728x90

Feature가 필요한 이유?

 머신 러닝은 input data를 output data로 대응시키는 블랙박스 형태입니다. 이 블랙박스는 input data의 함수이며 선형 또는 비선형의 형태를 가질 수 있습니다. 우리는 train data를 사용해서 이 함수를 학습하지만 항상 잘 되는 것은 아닙니다.

 

ex) 한 카페의 매출 가격을 입력으로 해서 가장 잘 팔리는 음료가 무엇인지 알려고 합니다. 매출 가격만으로 가장 잘 팔리는 음료가 무엇인지 정확하게 예측하는 것이 가능할까요? 아마도 매출 가격 정보만으로는 결과를 도출하기에는 충분하지 않을 것입니다.

 

위 예제를 통해 머신 러닝의 성능은 데이터의 양과 질에 굉장히 의존적이라는 것을 알 수 있습니다. 가장 이상적인 입력 데이터는 부족하지도, 과하지도 않은 적확한 데이터만 갖는 것입니다.

 

적확한 데이터를 모으기 위해서는 먼저 충분한 데이터를 모으고, 모은 데이터들 가운데 어떤 feature가 유용한지 아닌지 확인하는 과정을 거칩니다. Feature의 유용성을 확인하는 과정을 특징 선택(teature selection), 또는 특징 추출(feaure extraction)이라고 합니다. 이 과정은 보통 learning 과정 전에 실행됩니다. 이 과정은 머신러닝 구조에서 가장 핵심적인 전처리 과정에 속합니다.

 


 

차원 축소란?

우리가 훈련에 필요한 충분한 고차원의 입력 값을 가지고 있다고 가정해 봅시다. 모든 개수의 fearture가 필요하지 않을 수도 있고, 가지고 있는 feature들 중 몇몇 개는 다른 특징들의 조합으로 표현 가능하므로 불필요할 수도 있습니다. 따라서 관찰 대상들을 잘 설명할 수 있는 잠재 공간(latent space)은 실제 관찰 공간(observation space) 보다 작을 수 있습니다. 이렇게 관찰 공간 위의 샘플 기반으로 잠재 공간을 파악하는 것을 차원 축소(dimensionality reduction technique)라고 합니다.

 

차원 축소는 데이터의 압축, 잡음 제거 효과가 있지만,

가장 중요한 의의는 관측 데이터를 잘 설명할 수 있는 잠재 공간(latent space)를 찾는 것입니다.

 


 

앞서 언급했던 특징선택과 특징 추출의 차이점을 간단하게 정리해봤습니다.

 


 

 

간단 정리

 

 

 

 

 

 

-----------------------------------------------------------------------------------------------

본 포스팅은 졸업작품을 위한 미팅 자료에 기반을 두고 있습니다. 팀원과 함께 진행하는 프로젝트입니다.

참고 자료: Generative adversarial network GAN, https://iostream.tistory.com/110

 

'IT > GAN' 카테고리의 다른 글

Mode collapse 아주 간단 정리  (0) 2019.08.03
Regularization & Norm 간단 정리  (0) 2019.07.04
VAE & GAN 간단 비교  (0) 2019.06.28
728x90

GAN을 학습시키다 보면 어느 순간 제대로 학습이 되지 않을 때가 있습니다. 이것을 바로 모드 붕괴, Mode Collapse현상이라고 하는데요.이는 생성자가 다양한 이미지를 만들어내지 못하고 비슷한 이미지만 계속해서 생성하는 경우를 뜻합니다. GAN을 학습시킬 때는 생성자와 구분자가 비슷한 수준으로 학습을 반복하고 있는지 잘 확인해야 합니다.

 

 

간단 정리

  • 생성자(G)가 입력 값을 하나의 mode에 치우쳐 변환시키는 현상
  • 특정 값에 대해 G <-> D 를 반복해 올바르지 못한 학습이 진행
  • 일부 값에만 치우쳐 전체 분포에 대해 학습하지 못하는 현상

 MNIST의 경우: 

         G가 하나의 숫자만 생성하다 판별기(D)의 값이 진동해 다른 숫자의 분포로 이동하여 G가 다른 숫자만 생성하는 현상

 

 

 

MNIST에서의 정상 학습 이미지와 mode collapse된 이미지

빨간 박스 안의 이미지가 Mode Collapse 발생한 이미지입니다.

 

 

 

 

 

 

 

 

 

-----------------------------------------------------------------------------------------------

본 포스팅은 졸업작품을 위한 미팅 자료에 기반을 두고 있습니다. 팀원 함께 진행하는 프로젝트입니다.

'IT > GAN' 카테고리의 다른 글

Latent space 간단 정리  (0) 2019.08.03
Regularization & Norm 간단 정리  (0) 2019.07.04
VAE & GAN 간단 비교  (0) 2019.06.28
728x90

오늘은 CNN, ML 알고리즘에서 많이 보이는 Norm에 대해 간단히 정리하려고 합니다.

 

 

일반적으로 Deep Learning에서 network의 Overfitting(과적합) 문제를 해결하는 방법으로 3가지 방법을 제시합니다.

 

1. 더 많은 data를 사용

2. Cross validation

3. Regularization

 

 *2번의 cross validation(교차 검증)

- 모든 데이터가 최소 한 번은 test set으로 사용하도록 함

- Training set과 Test set을 분리하여 training set에서 모델의 계수를 추정한 후, test set으로 성능을 평가

 

test set을 어떻게 잡느냐에 따라 성능이 아주 상이하게 나올 경우 우연으로 모델 평가 지표에 편향이 생기게 됨 

cross validiation은 모든 data를 test set으로 사용하기 때문에 편향을 줄일 수 있음

 

장점

- 총 데이터 갯수가 적은 data set에서 정확도 향상 가능 (데이터 추가하지 않고 overfitting 해결 가능)

 

 

 

다시 돌아와서, 더 이상 data 추가가 어렵거나, 학습 data를 늘려도 overfitting 문제가 해결되지 않을 때 

3번 Regularization을 사용합니다. 이 Regularization은 lose function을 변형시켜 사용합니다.

 

 

Regularization(정규화)

 

- Regulaization을 통해 특정 값을 가지는 outlier의 영향을 적게 받도록 하여 일반화에 적합한 특성을 갖게 만드는 것

- Regularization은 L1과 L2로 나뉨

 

 

• L1 Regularization

- L1 Regularization은 1차항

- C0: 원래의 cost function

- n: training data의 개수

- λ: regularization 변수

- w: weight

- w에 대해서 편미분 수행 시 

- 상수 값을 빼기 때문에 작은 가중치들은 거의 0으로 수렴 (몇 개의 중요한 가중치만 남음)

- 몇 개의 의미 있는 값을 내고 싶을 때에 효과적

 

 

 

• L2 Regularization

- 학습의 방향을 단순히 C0값이 작아지는 방향으로만 진행시키는 것이 아니라 w값 역시 최소로 작아지는 방향으로 진행

- 새롭게 정의된 cost function을 가중치 w에 대해 편미분 수행 시

- 특정 가중치가 비 이상적으로 커지고, 학습 효과에 큰 영향을 끼치는 것을 방지할 수 있음

 

 

 

 

NORM

 

norm이란?

- 수학적으로 벡터 공간 또는 행렬에 있는 모든 벡터의 전체 크기

- 단순화를 위해 표준이 높을수록 행렬 또는 벡터의 값이 커짐

p: norm의 차수 (p의 차수에 따라 L0, L1, L2결정)

n: 대상 벡터의 요소 수

 

 

 

• L0 Norm

 

- 실제로는 norm이 아님

- 벡터의 0이 아닌 요소의 총 수에 해당

- ex) v(0,0), v(0,2)의 L0 norm의 개수: 1개 (0이 아닌 요소가 1개뿐이기 때문)

L0 norm 예시

 

 

 

• L1 Norm

 

- Manhattan Distance 또는  Taxicab norm으로 많이 알려짐

- 벡터의 요소에 대한 절대 값

- 벡터 사이의 거리를 측정

- 벡터의 모든 구성 요소에 동일한 가중치가 적용됨

 

- L1 Regularization, computer vision 영역에서 사용

 

- 출발지(0,0)에서 목적지(3,4)에 도착하기 위해 블록 사이를 여행하며 거리를 측정하는 방식

- vector X = [3,4] = 7

 

 

 

 

 

• L2 Norm

- Euclidean norm이라고도 알려진 가장 일반적인 Norm

- 한 지점에서 다른 지점으로 갈 때의 가장 짧은 거리를 측정

- L2 Norm은 가장 직접적인 경로

- L2 Regularization, KNN알고리즘, K-means 알고리즘에서 사용

- *고려할 점: 벡터의 각 구성 요소가 제곱이 되어있기 때문에 결과 값의 왜곡 가능성이 있음

 

 

 

• L - Infinity Norm

 

- 벡터 요소 중 가장 큰 크기를 제공

- vector X = [-6,4,2] 일 때, L - Infinity Norm = 6

- 가장 큰 요소만 효과가 있음

- Color pixel에서 R, G, B 최대 차이 계산에 사용

 

 

 

 

• Maximum Norm

 

- p값을 무한대로 보냈을 때의 norm

- 벡터 성분의 최댓값

 

 

 

 

 

'IT > GAN' 카테고리의 다른 글

Latent space 간단 정리  (0) 2019.08.03
Mode collapse 아주 간단 정리  (0) 2019.08.03
VAE & GAN 간단 비교  (0) 2019.06.28
728x90

요즘 제가 하고 있는 것이 바로 Google에서 진행하는 Google Study Jam인데요,

구글에서 교육 콘텐츠를 제공해주는 프로그램입니다.

GSJ는 기본적으로 2개의 코스로 진행합니다.

1. Coursera  - Machine Learning labs

2. Qiwklabs  - Cloud Labs

 

 

간단히 설명해서,

구글에서 제공하는 google console을 이용해서 머신러닝 강의를 듣고 실습할 수 있게 제공해주는 프로그램입니다.

 

이미 구글 스터디 잼은 2019년도 상반기부터 쭉 진행을 해왔었고,

저는 3,4월에 머신러닝 중급, 클라우든 중급을 수료했습니다. 

 

이번 5,6월은 머신러닝 심화, 클라우드 심화반 진행 중이고, 저는 스터디잼 심화반을 수료하는 중입니다.

 

오늘 포스팅할 것은 2개 코스 중 Qiwklabs 심화 파트인 Machine Learning APIs입니다.

 

스터디 잼 심화반 과정을 전부 따라 하진 않을 겁니다. 그저 제가 공부했던 것을 다시 정리하는 느낌으로 api가 무엇인지, 

구글 스터디 잼은 어떤 식으로 진행이 되는지 살짝 엮어서 쓸 예정입니다.

 

스터디 잼이 지급했던 가이드라인과 같을 수도, 다를 수도 있을 것 같네요.

 

 

 

API란?

- API (Application Programming Interface)

- 개발자가 컴퓨팅 리소스 및 data access 할 수 있게 해주는 Software Program

- 특정 규칙 및 방법을 준수해서 요청 및 응답을 명확하게 전달해 줌

 

- API의 기능은 개발자의 효율성을 크게 높여줌

- 모든 단일 프로그램, Method, Data Set 등을 처음부터 빌드하는 것보다 api를 활용하는 것이 훨씬 쉬움

- API를 사용하기 위해서 api의 내부 동작이나 복잡성을 이해할 필요가 없음(추상화 원칙)

 

- 개발자를 위해 만들어짐

- GUI 제공하지 않음

-google에서는 APIs Explorer라는 새로운 tool을 출시함

(이 tool을 사용 시 다양한 Google API를 대화 식으로 탐색할 수 있음)

 

 

Google의 API는?

 

- GCP(Google Cloud Platform)에서는 다양한 분야와 그 분야에 적용할 수 있는 다양한 API를 제공

- API는 Web development, Machine Learning, Data sceince, systems management work flow 등에서 사용

- QiwkLabs의 실습 환경에서 GCP project 및 API 사용 가능

 

 

API의 Architecture?

-API는 프로그램이 서로 통신할 수 있게 해주는 일련의 method

- 효과적으로 의사소통하기 위해서는 프로그램이 데이터 전송 및 해석을 제어하는 명확할 규약(protocol)을 준수해야 함

 

 <Client - Server model>

- 웹 기반의 API가 정보를 교환하기 위해 사용하는 기본 구조

 

Client: 일부 컴퓨팅 자원 또는 데이터에 요청하는 컴퓨팅 장치

          client의 요청은 합의된 프로토콜로 형식화해야 함

 

Server: 서버에는 데이터 및 컴퓨팅 리소스가 저장

          client의 요청을 해석하고 이해

 

 

RESTFul APIs란?

- REST (Representational State Transfer)

- HTTP 프로토콜, Request method, End Point를 사용하는 API

- 웹 기반 통신의 표준을 규정하는 architecture style

- REST는 API에서 가장 많이 사용되는 framework

 

RESTFul System

  • resource: 데이터 저장소에 저장
  • client: 서버가 특정 작업을 수행한다는 요청을 보냄
  • server: 작업을 수행하고 지정된 리소스의 표현 방식으로 응답을 보냄

RESTFul API's model

  • 개별 주소 지정 가능한 자원의 모음
  • 자원 및 방법은 api의 명사 및 동상
  • http  프로토콜 사용 시 리소스 이름이 자연스럽게 url에 매핑
  • 메서드가 자연스럽게 http 메서드에 매핑

- Header: HTTP request자체를 자세히 설명하는 매개 변수

- Body: client가 server에게 보내려고 하는 데이터

(Body는 Json or XML 형식 언어로 작성)

 

 

 

API의 데이터 형식(JSON)

- RESTFul API는 HTTP Request method 본무에 보관된 데이터 파일 형식으로 xml, json을 사용

 

JSON?

- JavaScript Object Notation

- 가볍고, 읽기 쉽고, 구문 분석이 빠름

- xml보다 많이 사용

- key - values 쌍으로 구성

- key는 string 유형

{
	"Name": "Judy",
	"Hometown": "Los Angeles, CA",
	"Age": 26
}

Authentication & Authorization

 

- Authentication(인증): client의 신원을 결정하는 프로세스를 나타냄

                            : 본인을 식별

- Authorization(권한 부여): 인증된 client가 자원에 대한 사용 권한을 결정하는 프로세스를 나타냄

                                  : 사용자가 수행할 수 있는 작업을 결정

 

 

Google API에서 사용하는 인증, 권한 부여 서비스

API key Service Accounts OAuth

-암호화된 문자열 형태로 제공하는 보안 토큰

- 생성 및 사용이 빠름

- 공용 데이터, 매소드 사용 시 신속한 실행 가능

- in GCP

    = api호출을 호출하는 프로젝트를 식별

    = 사용정보를 해당 프로젝트와 연관

    = api에 의해 액세스 허용

    = api에 의해 미허가 프로젝트 호출 거부

- application 계정에 개인키 제공

- 개별 최종 사용자의 가상 머신에 속함

- 구글 계정의 특별한 유형

- google cloud 기능 제공

- Goggle App Engine,

  Google Compute Engine,

  Google Kubernetes Engine

  에서 기본 서비스 계정 사용

- 해당 형식의 API key와 유사

- 더 강력한 보안

- 사용자 계정, ID에 연결 가능

- 사용자 데이터에 액세스 하는 수단 제공

- API key: 모든 API 기능에 액세스

- OAuth Client ID: 모든 범위 허용

 

 

 

 

 

 

 

 

 

 

 

<실습> cloud Storage JSON/ REST API를 사용해서 파일 업로드하기

 

 

 

step 1. 퀵랩에서 start lab을 눌러줍니다.

 

 

step 2. google console을 로그인을 해줍니다.

 

 로그인시 username , password 사용

 

 

 

 

step 3. 메인 메뉴 -> API & SERVICE -> library에서 Fitness API 선택

Enabled 버튼 눌러서 활성화 시킴

 

 

 

 

step 4. 같은 방법으로 Google Cloud Storage JSON API 활성화 

 

 

step 5. 메인메뉴 -> Storage에서 Create new bucket

step 2의 project ID로 버킷 이름 설정해줌

 

 

step 6. google cloud shell을 사용

start cloud shell 버튼 누르기

 

 

 

step 7. console에서 bucket을 만들기 위해 필요한 값 정해주기

 

 

step 7-1. 다음 명령어 실행해서 호출된 파일 작성

nano values.json

 

step 7-2. nano 텍스트 편집기를 이용해 다음 명령어를 입력

{  "name": "YOUR_BUCKET_NAME",  // 미리 설정해준 bucket 이름을 붙여 넣기
   "location": "us",
   "storageClass": "multi_regional"
   }

 

 

 

 

step 8. 인증 토큰 사용하기

 

step 8-1. OAuth 토큰 생성

https://developers.google.com/oauthplayground

 

OAuth 2.0 Playground

Request Body Manual entry Enter the data that will be added to the body of the request: File You may choose to send a file as part of the request. When both a file and manual content are provided both will be sent using a multipart request. You may send fi

developers.google.com

체크 표시된 것을 찾아서 누르고 Authorize APIs 버튼 클릭

 

 

step 8-2. 인증 로그인

step 2의 username, password를 사용해서 로그인

 

 

step 8-3.  새 인증 토큰 받기

Exchange authorization code for tokens 버튼 클릭하여 새 인증 토큰 받기

 

 

step 8-4. access_token 확인

새 인증 토큰을 복사

 

 

 

step 9. 컴퓨터에 원하는 사진 저장하기

demo-image.png로 이름 변경

 

 

 

step 10. Google cloud shell로 돌아와서 명령어 입력

 

 

step 10-1. 이미지 파일의 경로 가져오기

realpath demo-image.png

이런 형식이 출력되어야 함

 

step 10-2. 파일 경로를 환경 변수로 설정

export OBJECT= DEMO_IMAGE_PATH // 이미지 파일의 실제 주소를 입력함

 

step 10-3. 버킷 이름을 환경 변수로 설정

export BUCKET_NAME= YOUR_BUCKET // project ID 입력

 

step 10-4. OAuth2  토큰을 환경 변수로 설정

export OAUTH2_TOKEN= YOUR_TOKEN // 생성한 access token을 입력

 

 step 10-5. Cloud Storage bucket을 생성 

curl -X POST --data-binary @$OBJECT \
    -H "Authorization: Bearer $OAUTH2_TOKEN" \
    -H "Content-Type: image/png" \
    "https://www.googleapis.com/upload/storage/v1/b/$BUCKET_NAME/o?uploadType=media&name=demo-image"

비슷한 형식의 출력이 나와야 함

 

 

step 11. 메인 메뉴-> storage ->browser -> bucket name 선택하여 bucket에 추가된 이미지 확인

이미지 확인

 

728x90

오랜만에 블로그를 다시 잡아보는데요, 

앞으로 다룰 주제는 제가 현재 졸업작품으로 다루고 있는 인공지능 작곡기(정확히는 편곡기)에 대해서 설명할 예정입니다.

오늘은 가장 기본이 되는 주제를 다룰 것은 아니고, 부수적으로 필요한 기본 개념들을 먼저 정리했습니다.

큰 주제는 조금 더 정리해서 올릴 예정입니다.

 

순서대로 정리하고 싶은 마음 반, 이미 정리된 것들을 먼저 올리고 싶은 마음 반이여서 고민을 했는데, 

하고 싶은걸 먼저해야 계속해서 블로그를 할 수 있을 것 같아서 오늘은 간단하게 전에 정리했던 내용을 올리려고 합니다.

 

 

 

처음에 이 인공지능 작곡기를 계획하면서, midi 파서를 VAE, DAE기법으로 인디코딩시키려고 했습니다만,

생각보다 듣기 좋은 음악이 나올 것 같지가 않아서 Resnet과 cycleGAN을 이용하는 쪽으로 회선 시켰습니다.

 

그렇기에 오늘은 VAE와 GAN의 간단한 차이점을 적어보려고 합니다.

 

VAE는?

 

- Variational Auto-Encoder  

- 복잡한 데이터 생성 모델을 설계하고 대규모 set에 적응 할 수 있게 해줌

- input data를 잠재변수 z로 encoding 한 후, 스스로 input을 복원해 내는 방법

- VAE에서의 Loss functoion은 input x와 복원된 x'(decoding 된 x) 간의 Loss로 정의

- VAE에서는 Auto-Encoder가 input을 따라 그리는 것에만 맞게 학습 시킴

- 결론적으로 z는 의미론적이지 않음

 

 

GAN은?

- Generative Adversarial Nets

- Generator과 Discriminator가 서로 대립하여 서로의 성능을 점차 개선해 나가는 개념

- ex) 지폐위조범(Generator)은 경찰(Discriminator)을 최대한 열심히 속이기 위해 노력함

       경찰은 지폐위조범의 위조된 지폐를 감별하기 위해(Classify) 노력함

       이런 경쟁 속에서 두 그룹 모두 속이는 능력, 구별하는 능력이 발전하게 됨

     = 결과적으로, 진짜 지폐와 위조 지폐를 구별할 수 없을 정도에 이름

 

- Generative model G -> data x의 distibution을 알아내려고 노력

  (G가 data distribution을 모사할 수 있으면 sample과 data를 구별할 수 있다.)

 

- Discriminator model D -> sample이 training data인지, G가 만들어낸 data 인지 구별하여 각각의 확률을 estimate시킴

 

 

결론적으로 VAE와 GAN의 차이점은?

 

GAN

 

-generator model의 목적 자체가 어떤 data의 분포를 학습하는 것이 아님

- 진짜 같은 sample을 generate하는 것이 목적

 

 

VAE

- data의 분포를 학습하고 싶은데, 이 data가 다루기 힘들기 때문에 variational inference(변화 추론)하는 방법

- VAE는 data 분포가 잘 학습되기만 하면 sampling (=data generation)이 저절로 따라옴

 

 

 

 

 

'IT > GAN' 카테고리의 다른 글

Latent space 간단 정리  (0) 2019.08.03
Mode collapse 아주 간단 정리  (0) 2019.08.03
Regularization & Norm 간단 정리  (0) 2019.07.04
728x90

 

오늘은 git 다운로드하겠습니다.

 

 

 

git 홈페이지

 

링크 : http://dev-hani.tistory.com

 

 

 

 

다운로드 선택

 

 

 

 

 

.

.

.

 

 

next

 

 

 

 

next

 

 

 

 

next

 

 

 

 

 

 

 

 

저는 프론트를 만져주기 위해서 Visual Code 텍스트 에디터를 선택하였습니다.

 

그럴 필요 없으신 분들은 vim (defualt)해도 상관 없습니다.

 

넘어가려고 하는데 visual code가 없어서 다음으로 넘어갈 수가 없네요

 

visual code를 깔고 가겠습니다.

 

 

 

 

 

 

 

 

 

 

 

 

.

.

.

 

 

<visaul code 까는 법>

 

파란색 글씨를 눌러주세요.

 

 

 

 

 

홈페이지로 들어가도 좋습니다.

 

링크: https://code.visualstudio.com//

 

 

 

<홈페이지>

 

 

 

본인 컴퓨터에 맞게 선택해 주세요.

 

저는 windows x64 installer를 다운 받았습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

쭉쭉 next를 누르다가 이 화면이 나오면

 

기타에 있는 것을 모두 클릭해 줍니다.

 

 

 

 

 

<visual code 설치 끝>

 

 

 

 

 

 

.

.

.

 

다시 git 설치로 넘어와서

 

 

 

아까는 눌리지 않던 next 버튼이 눌리네요!

 

 

 

 

 

next

 

 

 

 

 

 

 

 

 

 

next

 

 

 

 

 

 

 

install 버튼을 눌러주면 설치 끝!

 

 

'IT' 카테고리의 다른 글

Google Colab 사용법 및 구글 드라이브 연동하기  (0) 2019.09.12
vi 명령어 알아보기  (0) 2018.05.14
간단한 리눅스 명령어 알아보기  (0) 2018.05.08
728x90

 

이번시간에는 파이썬 아나콘다를 설치하겠습니다.

 

 

 

 

 

아나콘다 홈페이지

 

링크: https://www.anaconda.com/download/

 

 

본인이 사용하는 운영체제에 맞게 선택

 

 

 

 

 

 

 

앞서 파이썬3.x버전을 다운 받았기 때문에 왼쪽의 python3.6 version 을 선택

 

bit에 맞게 선택해 줍니다.

 

 

 

 

 

 

 

 

next

 

 

 

 

 

 

 

I agree 클릭

 

 

 

 

 

 

 

all users를 권장합니다.

 

 

 

 

 

 

 

원하는 위치를 설정하고 next

 

 

 

 

 

 

 

두개 다 체크하고 install

 

 

 

 

 

 

 

 

 

 

 

 

skip 해줘도 됩니다.

 

 

 

 

 

 

 

finish 클릭!

 

 

 

 

 

 

 

 

 

<anaconda 설치 확인하는 방법>

 

 

cmd창을 열고 python을 입력

 

 

 

 

"파이썬 버전과 함께 anaconda가 적혀 있으면 성공!"

'IT > Python' 카테고리의 다른 글

JetBrain PyCharm Professtional IDE설치  (0) 2018.07.08
<python+Django 서버 구축하기>  (0) 2018.05.23

+ Recent posts