신경망 39

변분 오토인코더(Variational Autoencoder, VAE)

변분 오토인코더(Variational Autoencoder, VAE)는 Autoencoder의 변형 중 하나로, 데이터의 잠재 공간(latent space)에서 확률 분포를 학습하여 새로운 데이터를 생성하는 데 중점을 둔다. VAE는 기본 Autoencoder와는 달리, 입력 데이터의 잠재 변수를 확률 분포로 간주하고, 이를 통해 생성 모델의 기능을 수행한다. VAE의 주요 개념과 구조를 이해하기 위해서는 몇 가지 핵심 요소를 살펴볼 필요가 있다.1. 잠재 공간(Latent Space)VAE에서 입력 데이터는 잠재 공간에 매핑된다. 이 잠재 공간은 저차원 공간으로, 데이터를 구성하는 중요한 특징들을 압축하여 표현한다.일반적인 Autoencoder에서는 잠재 벡터가 고정된 값으로 변환되지만, VAE에서는 ..

Autoencoder

Autoencoder는 인공 신경망의 일종으로, 데이터의 차원 축소와 특징 추출에 주로 사용된다. 간단히 말해, Autoencoder는 입력 데이터를 압축한 후 다시 원래의 형태로 복원하는 과정을 통해 데이터의 중요한 특징을 학습한다. Autoencoder는 다음과 같은 두 가지 주요 부분으로 구성된다.1. 인코더(Encoder)인코더는 입력 데이터를 저차원 잠재 공간(latent space)으로 압축하는 역할을 한다. 입력 데이터가 인코더를 거치면서 점점 더 작은 차원의 벡터로 변환되며, 이 과정에서 데이터의 중요한 특징만을 추출하게 된다. 이때, 네트워크의 마지막 은닉층에서는 입력 데이터보다 훨씬 적은 수의 뉴런을 가지는 저차원 벡터, 즉 잠재 벡터(latent vector)가 만들어진다.2. 디코더..

RNN을 자세히 이해하기

먼저 RNN(Recurrent Neural Network) 개요 보기 RNN을 좀더 자세히 이해하기 위해 간단한 RNN 신경망을 구성해 보았다. 아래 RNN 신경망은 두개의 입력을 순차적으로 받는 신경회로이다. 1. 순전파순전파 시 사용하는 활성화함수는 tanh를 사용하고 출력을 위해 softmax를 사용하는 예이다. 2. 손실함수손실함수는 Cross-Entropy를 이용한다.3. 역전파가장 중요한 역전파 기울기를 계산해야 한다.RNN에서는 가중치를 3개(U, V, W)를 사용하므로 3개의 가중치에 대한 편미분을 구해야 한다.계산된 가중치는 아래와 같다.1) V로 미분하기2) W로 미분하기3) U로 미분하기이렇게 구해진 방정식을 이용하여 U, V, W의 가중치를 조정할 수 있다.다음에는 이를 이용해서 구..

컴퓨터공학/RNN 2024.08.29

로그함수(logarithmic function)

로그함수는 주어진 숫자가 어떤 수의 거듭제곱으로 표현될 수 있는지를 나타내는 함수로, 수학에서 매우 중요한 역할을 한다. 로그함수의 기본 형태는 다음과 같다.y=log⁡b(x)여기서 b는 밑(base)이라 불리며, 로그함수가 어떤 밑을 기준으로 하는지를 나타낸다. x는 로그의 진수(argument)로, 밑의 몇 제곱이 x가 되는지를 묻는 것이다. 그리고 y는 결과값을 의미합니다. 이 식은 다음과 같이 해석할 수 있다.1. 로그의 종류상용로그 (Common Logarithm): 밑이 10인 로그를 말하며, 주로 log⁡(x) 또는 log⁡10(x)로 표기한다. 예를 들어, log⁡10(100)=2이다. 이는 10을 두 번 곱하면 100이 된다는 의미이다.자연로그 (Natural Logarithm): 밑이 ..

손실함수(loss function)

손실함수(loss function)는 신경망(또는 다른 머신러닝 모델)에서 모델의 예측값과 실제 값 간의 차이를 측정하는 함수이다. 이 함수는 모델이 얼마나 잘 수행하고 있는지를 정량적으로 평가하기 위해 사용된다. 모델의 출력이 실제 값과 얼마나 가까운지를 평가하여, 모델의 파라미터를 업데이트하고 최적화하는 과정에서 중요한 역할을 한다.손실함수의 역할신경망에서 학습이 이루어지는 과정은 다음과 같다.예측(Prediction): 신경망은 주어진 입력 데이터를 바탕으로 예측값을 생성한다.손실 계산(Calculate Loss): 손실함수는 예측값과 실제 값(타겟) 간의 차이를 계산한다. 이 값이 클수록 모델의 예측이 부정확한 것이다.역전파(Backpropagation): 손실함수의 값을 최소화하기 위해 역전파 ..

컴퓨터공학/NN 2024.08.28

경사하강법(Gradient Descent)

경사하강법(Gradient Descent)은 머신러닝과 최적화 문제에서 널리 사용되는 기법으로, 주어진 함수의 최솟값(또는 최댓값)을 찾기 위해 사용된다. 주로 손실 함수(Loss Function)를 최소화하는 데 사용되며, 이 과정에서 모델의 파라미터를 업데이트한다. 경사하강법의 기본 아이디어는 함수의 기울기(Gradient)를 이용하여 함수의 값을 점진적으로 줄여나가는 것이다.1. 경사하강법의 기본 원리경사하강법은 다음과 같은 절차를 따른다.초기값 설정: 먼저, 모델의 파라미터(예: 가중치와 편향)를 초기화한다. 이 초기값은 임의로 설정될 수 있다.기울기 계산: 현재 위치에서의 손실 함수의 기울기(Gradient)를 계산한다. 이 기울기는 파라미터 공간에서 함수가 가장 급격하게 증가하는 방향을 나타낸..

컴퓨터공학/NN 2024.08.28

신경망에서 사용되는 활성화함수들

신경망에서 사용되는 활성화 함수는 신경망의 출력값을 비선형적으로 변환하여 학습과정을 도와준다. 주요 활성화 함수에는 다음과 같은 것들이 있다. 1. 계단 함수 (Step Function)역치값 이상이면 1, 아니면 0인공지능 초기에 사용하였으나 지금은 잘 사용하지 않는다. 2. 시그모이드 함수 (Sigmoid Function)​출력값이 0과 1 사이로 압축된다. 그러나, 시그모이드 함수는 큰 값에서 그래디언트가 매우 작아져서 학습이 느려질 수 있다 (즉, 기울기 소실 문제가 발생할 수 있음).public static double sigmoid(double x) { return 1 / (1 + Math.exp(-x));} 3. 하이퍼볼릭 탄젠트 함수 (Tanh Function)tanh(x)는 쌍곡 탄..

컴퓨터공학/NN 2024.08.28

인공지능에서의 벡터

인공지능에서 사용하는 벡터(Vector)는 데이터와 정보를 수학적으로 표현하고 처리하는 기본 단위이다. 벡터는 주로 기계 학습, 딥러닝, 자연어 처리(NLP)와 같은 다양한 인공지능 분야에서 중요한 역할을 한다. 1. 벡터의 기본 개념벡터의 정의: 벡터는 크기와 방향을 가지는 양을 나타내는 개념으로 여러 개의 수치(숫자)를 순서대로 나열한 것이다, 공간 상에서 화살표로 표시할 수 있다. 이러한 수치들은 보통 "차원"이라고 부른다. 예를 들어, 3차원 벡터 [1, 2, 3]은 세 개의 수(1, 2, 3)로 구성된 벡터이다.V = [v1, v2, v3]차원(Dimension): 벡터의 크기 또는 길이를 나타내며, 벡터에 포함된 수치의 개수이다. 예를 들어, 2차원 벡터는 두 개의 수치로, 100차원 벡터는 ..

GNN(Graph Neural Network)

GNN(Graph Neural Network)은 딥러닝에서 그래프 데이터를 처리하는 모델로, 그래프 기반 딥러닝 모델의 범주에 속한다. GNN은 특히 비정형 데이터(unstructured data)에서 노드, 엣지, 그래프 구조를 학습하는 데 사용된다. 이를 통해 그래프의 구조적 정보와 노드 간의 관계를 모델링하고 학습할 수 있다.GNN의 개요그래프 데이터 처리: GNN은 그래프 데이터를 처리하기 위해 개발된 모델로, 그래프는 노드(정점)와 엣지(간선)로 구성된다. 이러한 그래프 구조는 소셜 네트워크, 분자 구조, 지식 그래프, 추천 시스템, 교통 네트워크 등 다양한 분야에서 자연스럽게 나타난다.학습 대상:노드 분류(Node Classification): 그래프 내의 개별 노드의 레이블을 예측하는 작업이..