Deep Learning 17

L1 Norm, L2 Norm / L1 Loss, L2 Loss 이란?

📌 Norm벡터의 크기를 측정하는 방법두 벡터 사이의 거리를 측정하는 방법 📌 L1 NormNorm 식에서 p가 1인 Norm으로 벡터의 요소에 대한 절댓값의 합Manhattan(맨허튼) norm이라고도 한다.L2보다 outlier(이상치)에 robust(덜 민감)하다. 📌 L2 NormNorm 식에서 p가 2인 Norm으로 피타고라스 정리를 활용했다.Euclidean(유클리드) norm이라고도 한다.제곱의 형태이기 때문에 outlier(이상치)에 예민하나 더욱 일반화된 모델을 생성한다. 📌 L1 Norm, L2 Norm 비교L1은 초록색 외의 선들로 여러가지 path를 가지지만L2는 초록색 선으로 unique shortest path를 가진다.  Loss도 Norm과 유사하게 계산된다.📌 L1..

Deep Learning 2024.12.11

YOLOv10 Multi-GPU DDP 사용하기

YOLOv10으로 학습을 하려는데 DDP(DistributedDataParallel)로 학습을 하려니 안된다.. GPU 1개로 잘만 돌아가던 것이 2개 이상만 되면 NoModule을 띄우며 yolo를 찾지 못했다.(터미널창 지워버림ㅠ)그래서 찾은 방법이 아래의 방법이다. (ㅈㅎ아 고마워 ㅠ) 참고 : https://docs.ultralytics.com/yolov5/tutorials/multi_gpu_training/#trainingCUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.run --nproc_per_node 2 train.py --epochs 300 --batch_size 2 --data dataset.yaml  pytorch에서 ddp을 사용할 때 ..

Deep Learning 2024.09.21

YOLOv7 사용 및 학습해보기

참고 : https://foss4g.tistory.com/1796 📌 설치딥러닝 공부를 하며 코드 구현을 해본 적이 아직까지 없는데 YOLOv7을 통해 연습해보려 한다.YOLOv7은 공식적으로 코드가 오픈되어 있고 블로그 참고글이 많아 좋은 연습예제가 될 듯하다.https://github.com/WongKinYiu/yolov7 GitHub - WongKinYiu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-timeImplementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art ..

Deep Learning 2024.09.12

[밑바닥부터시작하는딥러닝2] Chapter 8. 어텐션

8.1. 어텐션의 구조✔️ seq2seq의 문제점seq2seq에서 Encoder의 출력은 '고정 길이의 벡터'였다.고정길이벡터는 입력 문장의 길이에 관계없이(아무리 길어도) 항상 같은 길이의 벡터로 변환한다는 뜻이다.이렇게 되면 필요한 정보가 벡터에 모두 담기지 못하게 된다. ✔️ Encoder 개선Encoder의 출력 길이는 입력 문장의 길이에 따라 바꿔주는게 좋다.이를 위해 그림 8-2처럼 시각별 LSTM 계층의 은닉 상태 벡터를 모두 이용한다.각 시각별 LSTM 계층의 은닉 상태이기 때문에 hs 행렬은 각 단어에 해당하는 벡터들의 집합이라고 볼 수 있다. ✔️ Decoder 개선(1)Decoder의 LSTM 계층의 '첫' 은닉 상태는 Encoder LSTM 계층의 '마지막' 은닉상태이다.즉 그림 8..

Deep Learning 2024.04.23

[밑바닥부터시작하는딥러닝2] Chapter 7. RNN을 사용한 문장 생성

7.1. 언어 모델을 사용한 문장 생성그림 7-1과 같이 LSTM 계층을 이용한 언어 모델이 'you say goodbye and I say hello' 라는 말뭉치를 학습했다고 가정해보자. 그림 7-2처럼 'I'라는 단어를 주었을 때 다음 단어를 새로 생성하려면 어떻게 해야 할까?1. 확률이 가장 높은 단어를 선택하는 방법(결과가 일정한 '결정적'인 방법)2. 후보단어의 확률에 맞게 선택하는 방법,즉 확률이 높은 단어는 선택되기 쉽고 확률이 낮은 단어는 선택되기 어렵다.(결과가 매번 다른 '확률적'인 방법) 확률적으로 'say'라는 단어가 선택된 후 그림 7-4처럼 두 번째 단어를 샘플링한다. 이와 같은 작업을 원하는 만큼 반복한다.(or 같은 종결 기호가 나타날 때까지 반복한다.) 문장 생성 구현은 ..

Deep Learning 2024.04.22

[밑바닥부터시작하는딥러닝2] Chapter 6. 게이트가 추가된 RNN

6.1. RNN의 문제점BPTT에서 기울기 소실 혹은 기울기 폭발이 일어나기 때문에 시계열 데이터의 장기 의존 관계를 학습하기 어렵다.그림 6-5에서 시간방향 기울기에 주목하면 'tanh', '+', 'MatMul(행렬곱)' 연산을 통과하는 것을 알 수 있다.여기서 +는 기울기를 그대로 하류로 흘려보내기 때문에 기울기가 변하지 않지만 나머지 두 연산은 기울기를 변화시킨다. 그림 6-6에서 tanh(x)의 미분인 점선을 보면 값이 1 이하이고 x가 0으로부터 멀어질수록 작아진다.이는 역전파에서 기울기가 tanh노드를 지날 때마다 작아진다는 뜻이다. MatMul(행렬곱)을 보면 그림 6-7처럼 상류로부터 dh라는 기울기가 계속 흘러온다고 가정하자.이 때 MatMul 노드의 역전파는 dhWh^T라는 행렬곱으로..

Deep Learning 2024.04.21

[밑바닥부터시작하는딥러닝2] Chapter 5. 순환 신경망(RNN)

피드포워드(feed forward) : 흐름이 단방향인 신경망 (예. word2vec 등)입력신호가 다음 층(중간층)으로 전달되고 그 신호를 받은 층은 그 다음 층으로 전달하는 식으로 한 방향으로만 신호가 전달된다.구성이 단순하여 구조를 이해하기 쉽기 때문에 많은 문제에 응용할 수 있다.그러나 시계열 데이터를 잘 다루지 못한다.이를 해결하기 위해 순환 신경망(Recurrent Neural Network, RNN)이 등장한다. 5.1. 확률과 언어 모델언어모델(Lanugage Model)은 단어 나열에 확률을 부여한다.특장 단어의 시퀀스에 대해 그 시퀀스가 일어날 가능성이 어느 정도인지(얼마나 자연스러운 단어 순서인지)를 확률로 평가한다. m개 단어로 된 문장을 생각했을 때, 단어가 w1, ..., wm ..

Deep Learning 2024.04.20

[밑바닥부터시작하는딥러닝2] Chapter 4. word2vec 속도 개선

CBOW모델은 말뭉치에 포함된 어휘 수가 많아지면 계산량이 커져 계산 시간이 오래 걸린다.이를 위해 Embedding이라는 새로운 계층을 도입하고 네거티브 샘플링 이라는 새로운 손실함수를 도입한다. 4.1. word2vec 개선 (1)CBOW모델은 단어 2개를 맥락으로 사용해 이를 바탕으로 하나의 단어(타깃)을 추측한다.이때 입력측 가중치(Win)와의 행렬곱으로 은닉층이 계산되고 다시 출력측 가중치(Wout)와의 행렬곱으로 각 단어의 점수를 구한다.이 점수에 소프트맥스 함수를 적용해 각 단어의 출현 확률을 얻고 이 확률을 정답 레이블과 비교하여(교차 엔트로피 오차를 적용하여) 손실을 구한다. 이런 CBOW모델은 거대한 말뭉치를 다루게 되면 문제가 생긴다.그림 4-2와 같이 어휘가 100만개, 은닉층의 뉴..

Deep Learning 2024.04.19

[밑바닥부터시작하는딥러닝2] Chapter 3. word2vec

3.1. 추론 기반 기법과 신경망✔️ 통계 기반 기법의 문제점통계기반기법에서는 주변 단어의 빈도를 기초로 단어를 표현했다.하지만 이 방식은 대규모 말뭉치를 다룰 때 문제가 발생하는데, 어휘가 100만개라면 100만*100만이라는 거대행렬이 생기고 이를 SVD(특잇값감소) 적용하는 것은 쉽지 않다.반면, 추론 기반 기법은 신경망을 이용하는 경우, 미니배치로 학습하는 것이 일반적이다. 신경망이 한번에 소량(미니배치)의 학습 샘플씩 반복해서 학습하며 가중치를 갱신해간다.그림 3-1과 같이 통계기반기법은 데이터를 한꺼번에 처리하고(배치학습), 추론기반기법은 데이터의 일부를 사용하여 순차적으로 학습한다.(미니배치학습) ✔️ 추론 기반 기법추론 기반 기법에서는 '추론'이 주된 작업으로, 그림 3-2처럼 주변 단어(..

Deep Learning 2024.04.18

[밑바닥부터시작하는딥러닝2] Chapter 2. 자연어와 단어의 분산 표현

2.1. 자연어 처리란자연어(natural language) : 한국어, 영어 등 평소에 쓰는 말자연어처리(Natural Language Processing, NLP) : 자연어를 처리하는 분야, 즉 사람의 언어를 컴퓨터에게 이해시키기 위한 기술 사람의 언어는 '문자'로 구성되며, 언어의 의미는 '단어'로 구성된다.즉 단어는 의미의 최소 단위, 따라서 자연어를 컴퓨터에게 이해시키는 데는 '단어의 의미'를 이해시키는 것이 중요하다. 2.2. 시소러스시소러스 : 유의어 사전으로 뜻이 같은 단어(동의어)나 뜻이 비슷한 단어(유의어)가 한 그룹으로 분류되어 있다.ex) WordNet : 시소러스 중 하나 단어 사이의 '상위와 하위' 혹은 '전체와 부분' 등 더 세세한 관계까지 정의해둔 경우도 있다. 이처럼 모든..

Deep Learning 2024.04.17