목록Technology (225)
Develog
보호되어 있는 글입니다.
보호되어 있는 글입니다.
Non-Variational AutoencoderMNIST를 사용한 오토인코더 훈련MNIST는 인공지능 훈련용으로 준비된 가장 기초적인 데이터 세트이다. MNIST에는 손 글씨로 작성한 흑백 숫자 이미지 784개가 포함되어 있다. MNIST를 활용한 훈련을 통해 오토인코더의 목적이 입력값과 출력값을 최대한 동일하게 만드는 것임을 알 수 있다. 이를 평가할 때는 MSE(평균 제곱 오차) 손실 함수가 사용된다.MNIST가 오토인코더를 통과하는 과정을 단계별로 표현하면 아래와 같다.인코더: 데이터 압축하기. 784차원으로 구성된 복잡한 MNIST의 이미지 데이터가 2 ~ 10개가량의 작은 핵심 데이터로 압축된다. 압축된 결과물은 잠재 변수($Z$)가 된다. 잠재 공간: 인코더에 의해 데이터가 가장 작게 압축되..
판별 모델과 생성 모델판별 모델 (Discriminative Model)판별 모델은 Many-to-One을 목표로 한다. 사용자가 여러 이미지를 제공하면 하나의 라벨을 생성한다.사용자를 통해 제공받은 샘플 데이터를 학습하여 함수를 정의하고, 해당 이미지에 맞는 라벨을 생성한다. 이후 유사한 이미지가 다시 유입되면 학습한 이미지를 분류한다. 생성형 모델과 다르게 새로운 값을 생성하는 것은 불가능하다. 새로 유입된 이미지가 어떤 라벨에 더 적합한지 확률을 이용해 판별하며, 더 높은 확률을 지닌 라벨을 반환한다.판별 모델은 유입된 이미지 하나에 대한 라벨끼리만 확률은 나누므로, '이미지 간의 경쟁' 관계가 구축되지 않는다. 즉, 사진 A에서 라벨이 개일 확률이 1.0이더라도 사진 B에 대한 분류에 영향을 미치..
생성형 모델 학습시키기우리는 강아지를 찍은 이미지 $x$에 대한 확률 분포 $p(x)$를 학습하고자 한다. 이를 위해서는 어떻게 확률 분포를 대표할 것인지를 알아야 한다.생성형 모델을 학습시키기 위해서는 먼저 학습을 위한 훈련용 데이터 세트(Training Set)가 필요하며, 이 데이터 세트를 활용해 일반화할 수 있는 특징을 찾아야 한다.강아지 이미지 1만 개 > 귀의 형태와 수, 꼬리의 유무, 색상, 코의 위치와 크기 등 특징 이해생성형 모델에 제공하는 개별적인 데이터는 실제 세계에 존재하는 미지의 확률 분포에서 추출된 샘플($p_{data})$이라고 가정한다.생성형 모델을 최적화하기 위해 사용되는 파라미터 $\theta$의 집합을 모델 패밀리($M$)라고 부른다. 이 파라미터는 모델이 정의하는 확률..
데이터 (Data)AI가 예측과 결정을 내리는 데 사용하는 자원(materials).이미지, 텍스트, 비디오, 오디오 등 기계가 읽을 수 있다면 뭐든지 데이터가 될 수 있다.개는 데이터가 아니지만, 개를 찍은 사진은 데이터가 될 수 있음.인공 지능 (AI)기계로 구현된 '인공 지능'.컴퓨터 시스템을 활용하여 인간의 지능을 요구하는 작업을 수행할 수 있도록 만드는 연구 분야이기도 하다.머신 러닝 (Machine Learning)데이터로부터 패턴을 학습하고, 입력된 적 없는 데이터를 일반화하여 명시적인 지시 없이도 작업을 수행할 수 있도록 만드는 통계 알고리즘 연구 분야.딥 러닝 (Deep Learning)머신러닝의 하위 분야로, 신경망을 활용하여 작업을 수행하는 데 중점을 둔다.판별 모델 (Discrimi..
1. 문자열Python은 문자열을 다룰 때 정말 강력한 성능을 발휘하는 언어 중 하나입니다.문자열을 자르고, 붙이고, 곱하고, 더하는 등 직관적이고 사고공학적(?)인 구조를 지니고 있어 유연하게 활용할 수 있습니다.문자열을 가공할 때는 물론, 문자열을 출력할 때도 이러한 Python의 장점이 발휘됩니다.repr( )과 str( )이 그것입니다. 2. repr( )문자열로 객체를 다시 생성하고자 할 때 사용됩니다.import datetimea = datetime.datetime(2017, 9, 27)str(a)>>> '2017-09-27 00:00:00'a = datetime.datetime(2017, 9, 27)repr(a)>>> 'datetime.datetime(2017, 9, 27, 0, 0)'문자..
1. C++ 진짜 싫다아니 대체 이런 언어를 왜 쓰는 거죠.프레임워크를 설치하든, 코드를 짜든, 문법 배운 거 실습을 하든 도통 뭘 하든 간에 제대로 돌아가는 꼴을 못 봤습니다.버전은 어마어마하고, 책임은 몽땅 프로그래머한테 떠넘기고, OS마다 컴파일러마다 파편화는 아찔한 수준이고, 패키지든 프레임워크든 뭐 하나 설치만 하면 에러부터 뿜어대고...Catch2요?아니 유닛 테스트를 위해서 쓸 수 있는 좋은 프레임워크라고 소개하면 뭐 합니까, 설치해서 쓸려고 해도 에러만 토해내는데!초보자 입장인 저에게는 C++이 너무나도 싫습니다. 문법 괴팍하다고 한동한 멀리하던 Python이 선녀로 보이는 수준입니다.아니 패키지 설치하라고 할 때마다, 새로운 문법을 하나씩 배울 때마다 늘 새롭고 재밌지가 않아요. 겁부터 ..