머신러닝 & 딥러닝
-
트랜스포머(Transformer)는 2017년 "Attention Is All You Need"라는 논문에서 처음으로 소개됐다. 논문의 제목대로, transformer는 어텐션 메커니즘(attention mechanism)이 트랜스포머 모델에서 중요한 역할을 담당한다는 의미를 담고 있다. 이전의 Seq2seq 모델에서는 순환 신경망(RNN)이나 장기 단기 기억(LSTM)과 같은 메커니즘을 사용하여 시퀀스를 처리했다. 그러나 트랜스포머는 이러한 순환 메커니즘 없이 어텐션 메커니즘만을 사용하여 모델을 구성한다. 이 논문은 어텐션 메커니즘이 기존의 RNN이나 LSTM보다 효과적으로 장기 의존성 문제를 해결하고, 병렬 처리를 통해 학습 속도를 향상시킬 수 있다는 점을 입증하였다. 이로 인해 트랜스포머는 자연어 ..
트랜스포머(Transformer)트랜스포머(Transformer)는 2017년 "Attention Is All You Need"라는 논문에서 처음으로 소개됐다. 논문의 제목대로, transformer는 어텐션 메커니즘(attention mechanism)이 트랜스포머 모델에서 중요한 역할을 담당한다는 의미를 담고 있다. 이전의 Seq2seq 모델에서는 순환 신경망(RNN)이나 장기 단기 기억(LSTM)과 같은 메커니즘을 사용하여 시퀀스를 처리했다. 그러나 트랜스포머는 이러한 순환 메커니즘 없이 어텐션 메커니즘만을 사용하여 모델을 구성한다. 이 논문은 어텐션 메커니즘이 기존의 RNN이나 LSTM보다 효과적으로 장기 의존성 문제를 해결하고, 병렬 처리를 통해 학습 속도를 향상시킬 수 있다는 점을 입증하였다. 이로 인해 트랜스포머는 자연어 ..
2023.06.13 -
어텐션(Attention)은 Seq2seq 모델에서 디코더(decoder)가 인코더(encoder)의 정보를 활용할 수 있도록 하는 메커니즘이다. 기존의 Seq2seq 모델은 인코더의 최종 문맥 벡터(context vector)를 고정된 길이의 벡터로 압축하고 이를 디코더에 전달하는데, 이는 입력 시퀀스의 모든 정보를 하나의 벡터에 압축하기 때문에 정보 손실이 발생할 수 있다. 어텐션 메커니즘은 이러한 문제를 해결하기 위해 개발되었다. 어텐션은 디코더가 출력 단어를 생성할 때 인코더의 각 입력 단어에 주의(attention)를 기울일 수 있도록 한다. 이는 디코더가 인코더의 어떤 부분에 더 집중해야 하는지를 학습할 수 있게 해준다. 어텐션 메커니즘은 인코더와 디코더 사이에 추가적인 컴포넌트로 도입되며, ..
어텐션 메커니즘(Attention Mechanism)어텐션(Attention)은 Seq2seq 모델에서 디코더(decoder)가 인코더(encoder)의 정보를 활용할 수 있도록 하는 메커니즘이다. 기존의 Seq2seq 모델은 인코더의 최종 문맥 벡터(context vector)를 고정된 길이의 벡터로 압축하고 이를 디코더에 전달하는데, 이는 입력 시퀀스의 모든 정보를 하나의 벡터에 압축하기 때문에 정보 손실이 발생할 수 있다. 어텐션 메커니즘은 이러한 문제를 해결하기 위해 개발되었다. 어텐션은 디코더가 출력 단어를 생성할 때 인코더의 각 입력 단어에 주의(attention)를 기울일 수 있도록 한다. 이는 디코더가 인코더의 어떤 부분에 더 집중해야 하는지를 학습할 수 있게 해준다. 어텐션 메커니즘은 인코더와 디코더 사이에 추가적인 컴포넌트로 도입되며, ..
2023.06.13 -
Seq2seq는 시퀀스 투 시퀀스(sequence-to-sequence) 모델의 줄임말로, 입력 시퀀스를 다른 시퀀스로 변환하는 기계 번역과 같은 자연어 처리 작업에 주로 사용되는 딥러닝 모델이다. Seq2seq모델은 두 개의 주요 컴포넌트로 구성된다. 하나는 인코더(Encoder)이고, 다른 하나는 디코더(Decoder)다. 인코더(Encoder) 인코더는 입력 시퀀스를 고정된 길이의 문맥 벡터로 압축하는 역할을 한다. 보통 RNN 계열의 네트워크인 LSTM(Long Short-Term Memory)이나 GRU(Gated Recurrent Unit)를 사용하여 구현된다. 인코더의 동작 과정은 다음과 같다. 입력 시퀀스의 단어들은 임베딩 과정을 통해 고정된 차원의 벡터로 변환된다. 임베딩된 단어들은 시퀀..
Seq2seq(sequence-to-sequence)Seq2seq는 시퀀스 투 시퀀스(sequence-to-sequence) 모델의 줄임말로, 입력 시퀀스를 다른 시퀀스로 변환하는 기계 번역과 같은 자연어 처리 작업에 주로 사용되는 딥러닝 모델이다. Seq2seq모델은 두 개의 주요 컴포넌트로 구성된다. 하나는 인코더(Encoder)이고, 다른 하나는 디코더(Decoder)다. 인코더(Encoder) 인코더는 입력 시퀀스를 고정된 길이의 문맥 벡터로 압축하는 역할을 한다. 보통 RNN 계열의 네트워크인 LSTM(Long Short-Term Memory)이나 GRU(Gated Recurrent Unit)를 사용하여 구현된다. 인코더의 동작 과정은 다음과 같다. 입력 시퀀스의 단어들은 임베딩 과정을 통해 고정된 차원의 벡터로 변환된다. 임베딩된 단어들은 시퀀..
2023.06.13 -
Isolation Forest는 이상치 탐지(Anomaly detection)를 위한 알고리즘으로, 데이터셋에서 특이하거나 이상한 패턴을 가진 데이터 포인트를 찾는 데 사용된다. 이 알고리즘은 간단하면서도 효과적인 방법으로 이상치를 식별할 수 있다. Isolation Forest는 다른 이상치 탐지 알고리즘과는 다른 접근 방식을 가지고 있다. 일반적인 방법은 정상 데이터의 군집을 찾고, 그 군집과 멀리 떨어진 데이터를 이상치로 간주하는 것이다. 하지만 Isolation Forest는 정상 데이터와는 구분되는 데이터 포인트를 찾기 위해 데이터셋을 분리하는 방식을 사용한다. Isolation Forest의 작동 원리를 이해하기 위해, 우선 트리(Tree)의 개념을 살펴보자. 트리는 루트 노드(root nod..
Isolation ForestIsolation Forest는 이상치 탐지(Anomaly detection)를 위한 알고리즘으로, 데이터셋에서 특이하거나 이상한 패턴을 가진 데이터 포인트를 찾는 데 사용된다. 이 알고리즘은 간단하면서도 효과적인 방법으로 이상치를 식별할 수 있다. Isolation Forest는 다른 이상치 탐지 알고리즘과는 다른 접근 방식을 가지고 있다. 일반적인 방법은 정상 데이터의 군집을 찾고, 그 군집과 멀리 떨어진 데이터를 이상치로 간주하는 것이다. 하지만 Isolation Forest는 정상 데이터와는 구분되는 데이터 포인트를 찾기 위해 데이터셋을 분리하는 방식을 사용한다. Isolation Forest의 작동 원리를 이해하기 위해, 우선 트리(Tree)의 개념을 살펴보자. 트리는 루트 노드(root nod..
2023.06.04 -
nn.Sequential을 사용하는 방법 nn.Sequential을 사용하여 간단한 신경망 구조를 구성할 수 있다. 이 방식은 각 층을 순차적으로 쌓아올린다. import torch import torch.nn as nn model = nn.Sequential( nn.Linear(784, 128), nn.ReLU(), nn.Linear(128, 64), nn.ReLU(), nn.Linear(64, 10), nn.Softmax(dim=1) ) nn.Module을 사용하는 방법 nn.Module을 사용하여 사용자 정의 신경망 구조를 구성할 수 있다. 이 방식은 객체 지향 프로그래밍을 사용하여 모델을 정의한다. import torch import torch.nn as nn class MyModel(nn.Mod..
[PyTorch] 신경망 모델 구축 방식nn.Sequential을 사용하는 방법 nn.Sequential을 사용하여 간단한 신경망 구조를 구성할 수 있다. 이 방식은 각 층을 순차적으로 쌓아올린다. import torch import torch.nn as nn model = nn.Sequential( nn.Linear(784, 128), nn.ReLU(), nn.Linear(128, 64), nn.ReLU(), nn.Linear(64, 10), nn.Softmax(dim=1) ) nn.Module을 사용하는 방법 nn.Module을 사용하여 사용자 정의 신경망 구조를 구성할 수 있다. 이 방식은 객체 지향 프로그래밍을 사용하여 모델을 정의한다. import torch import torch.nn as nn class MyModel(nn.Mod..
2023.05.06 -
순차형 (Sequential) 모델 순차형 모델은 간단한 신경망 구조를 구성하는 데 사용되며, 층을 순차적으로 쌓아올린다. 이 방식은 각 층에 대한 복잡한 연결이 없을 때 적합하다. TensorFlow의 Keras API를 사용하여 순차형 모델을 구성하는 방법은 다음과 같다. from tensorflow.keras import models from tensorflow.keras import layers model = models.Sequential() model.add(layers.Dense(128, activation='relu', input_shape=(784,))) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(10, a..
[Tensorflow] 신경망 모델 구축 방식순차형 (Sequential) 모델 순차형 모델은 간단한 신경망 구조를 구성하는 데 사용되며, 층을 순차적으로 쌓아올린다. 이 방식은 각 층에 대한 복잡한 연결이 없을 때 적합하다. TensorFlow의 Keras API를 사용하여 순차형 모델을 구성하는 방법은 다음과 같다. from tensorflow.keras import models from tensorflow.keras import layers model = models.Sequential() model.add(layers.Dense(128, activation='relu', input_shape=(784,))) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(10, a..
2023.05.06 -
K-평균 군집화(K-means Clustering)는 비지도 학습 알고리즘 중 하나로, 주어진 데이터를 K개의 클러스터로 그룹화하는 방법이다. 이 알고리즘은 다음과 같은 과정을 통해 클러스터링을 수행한다. 무작위로 K개의 초기 클러스터 중심(centroid)를 선택한다. 각 데이터 포인트를 가장 가까운 클러스터 중심에 할당한다. 각 클러스터의 중심을 새롭게 계산한다. 이를 위해, 해당 클러스터에 속한 모든 데이터 포인트의 평균 좌표를 사용한다. 클러스터 중심의 변화가 없을 때까지 2번과 3번 단계를 반복한다. K-평균 군집화의 목표는 아래의 목적 함수를 최소화하는 클러스터 중심을 찾는 것이다. $J = \sum_{i=1}^K \sum_{x \in C_i} ||x - \mu_i||^2$ 여기서 $J$는 목..
K-평균 군집화(K-means Clustering)K-평균 군집화(K-means Clustering)는 비지도 학습 알고리즘 중 하나로, 주어진 데이터를 K개의 클러스터로 그룹화하는 방법이다. 이 알고리즘은 다음과 같은 과정을 통해 클러스터링을 수행한다. 무작위로 K개의 초기 클러스터 중심(centroid)를 선택한다. 각 데이터 포인트를 가장 가까운 클러스터 중심에 할당한다. 각 클러스터의 중심을 새롭게 계산한다. 이를 위해, 해당 클러스터에 속한 모든 데이터 포인트의 평균 좌표를 사용한다. 클러스터 중심의 변화가 없을 때까지 2번과 3번 단계를 반복한다. K-평균 군집화의 목표는 아래의 목적 함수를 최소화하는 클러스터 중심을 찾는 것이다. $J = \sum_{i=1}^K \sum_{x \in C_i} ||x - \mu_i||^2$ 여기서 $J$는 목..
2023.04.23 -
서포트 벡터 머신(Support Vector Machine, SVM)은 분류와 회귀 문제를 해결하기 위한 머신러닝 알고리즘이다. SVM의 핵심 아이디어는 마진(margin)을 최대화하여 클래스 간의 경계를 찾는 것이다. 마진은 클래스를 구분하는 초평면(hyperplane)과 가장 가까운 훈련 샘플 간의 거리로 정의된다. 이러한 가장 가까운 훈련 샘플들을 서포트 벡터(support vectors)라고 한다. 조금 더 알기 쉽게 직관적으로 설명하자면, 2차원 평면에 빨간색과 파란색 점들이 분포되어 있다고 가정해보자. SVM의 목표는 빨간색과 파란색 점을 구분하는 선을 그리는 것이다. 이 선은 두 클래스의 가장 가까운 점들 사이의 거리가 최대가 되도록 그어진다. 이렇게 그어진 선은 분류 성능이 좋고, 새로운 ..
서포트 벡터 머신(Support Vector Machine, SVM)서포트 벡터 머신(Support Vector Machine, SVM)은 분류와 회귀 문제를 해결하기 위한 머신러닝 알고리즘이다. SVM의 핵심 아이디어는 마진(margin)을 최대화하여 클래스 간의 경계를 찾는 것이다. 마진은 클래스를 구분하는 초평면(hyperplane)과 가장 가까운 훈련 샘플 간의 거리로 정의된다. 이러한 가장 가까운 훈련 샘플들을 서포트 벡터(support vectors)라고 한다. 조금 더 알기 쉽게 직관적으로 설명하자면, 2차원 평면에 빨간색과 파란색 점들이 분포되어 있다고 가정해보자. SVM의 목표는 빨간색과 파란색 점을 구분하는 선을 그리는 것이다. 이 선은 두 클래스의 가장 가까운 점들 사이의 거리가 최대가 되도록 그어진다. 이렇게 그어진 선은 분류 성능이 좋고, 새로운 ..
2023.04.23