본문 바로가기
728x90

Robotics & AI/DeepLearning38

Udemy - 딥러닝의 모든 것(볼츠만 머신) - (2) 대조발산 볼츠만 머신의 학습 방법 중 하나인 대조발산(Contrastive Divergence, CD)은 볼츠만 머신을 효율적으로 학습시키는 방법 중 하나이다. 볼츠만 머신은 에너지 기반 모델로, 시스템의 에너지를 최소화하는 방향으로 학습을 진행한다. 대조발산은 이러한 볼츠만 머신의 학습 과정을 단순화하고 가속화하기 위해 고안된 방법이다. 기본 원리를 보자면 대조발산은 데이터의 분포와 모델의 분포 사이의 차이를 최소화하는 방향으로 모델의 매개변수를 조정한다. 이 과정은 두 단계로 이루어진다. Positive phase: 실제 훈련 데이터를 사용하여 네트워크의 은닉 노드를 활성화시키고, 이를 기반으로 네트워크의 에너지를 계산한다. Negative phase: 네트워크가 생성한 샘플(모델 분포에 의해 생성된.. 2024. 1. 7.
Udemy - 딥러닝의 모든 것(볼츠만 머신) - (1) The Boltzmann Machines 이전까지 다룬 ANN, CNN, RNN, SOM등은 모두 방향성이 있는 모델이라는 점에서 공통점이 있다. 이때 볼츠만 머신은 아래와 같이 방향성이 없다는 점에서 궤를 달리한다. 모든 연결성이 양방향으로 전달될 수 있기에 화살표로 표시되어있지 않은 것을 볼 수 있다. 입력노드를 파란색, 은닉노드를 붉은색으로 나타내면 아래와 같다. 이때 출력층이 없다는 특징을 볼 수 있다. 인공신경망에서 결과를 내보내는 출력층이 없다는 것은 굉장히 특징적인 내용이다. 또한 모든 노드가 전부 연결되어있어 특정한 층이라는 것이 존재하지 않는다. 마지막으로 모든 연결이 양방향성을 갖는다. 위의 세가지 특징이 볼츠만 머신을 특별하게 만드는 요소이다. 볼츠만 머신은 입력을 통해 결과를 예측한.. 2024. 1. 5.
Udemy - 딥러닝의 모든 것(SOM)-(2) 간단한 예시 SOM의 개념에 대해서 공부한 글에서 살펴봤듯 자기 조직화 지도(SOM) 방식은 각 포인트들이 범위를 설정하여 주변 노드들을 끌어당겨 각각에 맞는 노드들을 갖게 되어 특정한 topology를 그려내는 것이다. weight를 어떻게 잡느냐에 따라 위와 같이 색별로 모여서 map을 완성하는 것을 볼 수 있다. Advanced SOM 아래 사진은 미국 국회의원들의 각 이슈에 대한 투표 결과를 통해 자기 조직화 지도를 그린 모습이다. 실제 정당별 의원은 세번째 사진에 나타나있다. 첫번째 'Clusters' 사진은 오직 두개의 부류만 있다고 했을때 어떻게 분류했는지 그 결과를 나타내는 것이다. 두번째 'Unified Distance Matrix'에서는 밝을 수록 unit끼리 가깝다는 뜻이므로 실제와 .. 2024. 1. 3.
Udemy - 딥러닝의 모든 것(SOM)-(1) Self-Organizing Maps(자기 조직화 지도) SOM은 차원을 축소하는데 이용이 된다. 아래의 그림은 SOM의 작동원리를 시각화한 것이다. 다차원 데이터셋을 입력받는데 그 데이터 셋 안에는 수많은 행과 열이 있다. 이때 아래와 같은 과정을 통해 데이터 셋의 차원을 줄인다. 수많은 행과 열의 차원을 줄여서 2차원의 평면 지도에 표현을 하는 것이다. 적용 방식 아래는 다양한 국가의 부유하고 가난한 정도를 SOM으로 나타낸 것이다. 아래 값들은 39개의 지표를 기준으로 만들어졌는데 39차원을 시각화하는 것은 불가능하지만 아래와 같이 SOM을 이용하면 가능하다. 좌 상단은 기근에서 자유로운 국가들이고 우 하단은 기근에 시달리는 국가들이다. 또한 색이 비슷한 국가들은 비슷한 성격을 띄는 국가들이다. 위.. 2023. 9. 12.
Udemy - 딥러닝의 모든 것(CNN 구축하기) Dog or Cat 개와 고양이 사진을 주었을때 제대로 구분해 낼 수 있는 CNN모델을 구축해보도록 하자. Importing the libraries import tensorflow as tf from keras.preprocessing.image import ImageDataGenerator tf.__version__ Part 1 - Data Preprocessing Preprocessing the Training set train_datagen = ImageDataGenerator(rescale = 1./255, shear_range = 0.2, zoom_range = 0.2, horizontal_flip = True) training_set = train_datagen.flow_from_direct.. 2023. 9. 5.
GAN Generative Adversarial Networks(GAN) GAN은 Generative Adversarial Networks의 약자로 우리말로는 “적대적 생성 신경망”이라고 번역되는 딥러닝기술 중 하나이다. GAN은 실제에 가까운 이미지나 사람이 쓴 것과 같은 글 등 여러 가짜 데이터들을 생성하는 생성형모델이다. “적대적 생성 신경망”이라는 이름에서 알 수 있듯 GAN은 서로 다른 두 개의 네트워크를 적대적으로(adversarial) 학습시키며 실제 데이터와 비슷한 데이터를 생성(generative)해내는 모델이며 이렇게 생성된 데이터에 정해진 label값이 없기 때문에 비지도 학습 기반 생성모델로 분류된다. GAN은 구글 브레인에서 머신러닝을 연구했던 Ian Goodfellow에 의해 2014년.. 2023. 7. 26.
CNN for NLP NLP를 위한 합성곱 신경망 CNN은 주로 vision 분야에서 사용되는 알고리즘이지만 이를 응용해서 자연어 처리에 사용하기 위한 방법들이 연구되고 있다. 합성곱 신경망이 어떤식으로 텍스트 처리에서 쓰일 수 있는지 알아보자. 우선 합성곱 신경망에 대해서 알아보자. 위는 합성곱 신경망의 기본적인 구조이다. CONV는 합성곱 연산이고 그 결과가 활성화 함수 ReLU를 통과한다. 이때 CONV와 ReLU를 합쳐서 합성곱층이라고 한다. 다음으로 POOL은 풀링 연산을 하는 부분이고 풀링층이라고 한다. 합성곱 신경망이 조명받은 이유는 아래에서 볼 수 있다. 위와 같이 정자로 쓴 Y가 있고 조금 흘려쓴 Y가 있을때 이를 1차원 텐서로 변환하여 일반적으로 분석하려하면 문제가 발생한다. 위 그림을 보면 느낌이 오겠지만.. 2023. 7. 22.
딥러닝 직접 구현하기 - (신경망 학습) 데이터 접근 방법 아래와 같은 손글씨 5에 대한 데이터를 보고 5라고 판단하기 위한 로직을 만들어보려고 하면 크게 두 가지의 접근법이 있다. (1) 사람이 생각한 특징(SIFT, SURF, HOG 등) -> Machine Learning(SVM, KNN등) 이미지에서 특징(feature)을 추출. SIFG, SURF, HOG 등의 특징 사용. 벡터로 기술. Machine Learning: 데이터로부터 규칙을 찾아내는 역할 (2) 신경망(Deep Learning): 이미지를 그대로 학습 손실함수(loss function) 신경망은 어떠한 지표를 기준으로 최적의 매개변수 값을 탐색하기 위해 손실함수를 이용한다. Sum of squares for error(SSE) 오차 제곱합은 아래와 같이 계산된다. 이는 .. 2023. 7. 6.
딥러닝 직접 구현하기 - (신경망) 손글씨 숫자 인식 MNIST 데이터셋을 이용하여 손글씨 숫자를 분류하는 실습을 진행해 보았다. 이때의 추론 과정은 신경망의 순전파를 통해 진행된다. MNIST 데이터 셋은 아래와 같이 28 x 28 사이즈의 회색조 이미지이다. 훈련 이미지 60,000장, 테스트 이미지 10,000장이 존재한다. 이러한 데이터셋을 구분해내는 능력이 현재 학계에서 평가하는 지표로 많이 쓰이곤 한다. 아래와 같은 코드를 이용해 MNIST 데이터셋을 내려받아 이미지를 넘파이 배열로 전환할 수 있다. import sys, os sys.path.append(os.pardir) # 부모 디렉터리의 파일을 가져올 수 있도록 설정 from dataset.mnist import load_mnist # 처음 한 번은 몇 분 정도 걸립니다... 2023. 7. 1.
728x90