본문 바로가기

인공지능28

파이토치(PyTorch) 기초 한 번에 part2 해당 글은 이수안 컴퓨터 연구소의 파이토치 한번에 끝내기 PyTorch Full Tutorial Course 의 강의 자료를 정리한 글입니다. Autograd(자동미분) torch.autograd 패키지는 Tensor의 모든 연산에 대해 자동 미분 제공 이는 코드를 어떻게 작성하여 실행하느냐에 따라 역전파가 정의된다는 뜻 backprop를 위해 미분값을 자동으로 계산 requires_grad 속성을 True로 설정하면, 해당 텐서에서 이루어지는 모든 연산들을 추적하기 시작 기록을 추적하는 것을 중단하게 하려면, .detach()를 호출하여 연산기록으로부터 분리 기본적으로 텐서는 requires_grad를 False로 가지고 있다. requires_grad_(...)는 기존 텐서의 requires_grad.. 2023. 6. 3.
파이토치(PyTorch) 기초 한 번에 part1 해당 글은 이수안 컴퓨터 연구소의 파이토치 한번에 끝내기 PyTorch Full Tutorial Course 의 강의 자료를 정리한 글입니다. 파이토치(PyTorch)란 페이스북이 초기 루아(Lua) 언어로 개발된 토치(Torch)를 파이썬 버전으로 개발하여 2017년도에 공개 초기에 토치(Torch)는 넘파이(NumPy) 라이브러리처럼 과학 연산을 위한 라이브러리로 공개 이후 GPU를 이용한 텐서 조작 및 동적 신경망 구축이 가능하도록 딥러닝 프레임워크로 발전시킴 파이썬답게 만들어졌고, 유연하면서도 가속화된 계산 속도를 제공 파이토치의 구성요소 torch: 메인 네임스페이스, 텐서 등의 다양한 수학 함수가 포함 torch.autograd: 자동 미분 기능을 제공하는 라이브러리 torch.nn: 신경망 .. 2023. 6. 3.
[논문리뷰] Transformer (Attention Is All You Need) 해당 글은 wikidocs의 16 - 01 트랜스포머(Transformer)에 대한 글을 정리한 글입니다. 기존 Seq2Seq 모델의 한계Seq2Seq2 모델은 위와 같은 모습을 가진다. 인코더 파트에서는 입력 문장의 모든 단어들을 순차적으로 입력받고, 마지막에 단어들로부터 얻은 모든 정보들을 압축해서 하나의 벡터로 만든다. 이 벡터를 컨텍스트 벡터(Context Vector)라 부른다. 이 Context Vector는 입력 문장에 대한 문맥적인 정보를 담게 되는데 디코더는 해당 벡터를 받아 번역된 단어를 한 개씩 순차적으로 출력한다. 한 단어에 대한 계산은 앞에 단어에 대한 계산이 끝나야 가능하니 정보의 흐름에 병목 현상(Bottleneck)이 일어날 수 있다는 문제점이 있다. 입력 문장의 길이가 짧던.. 2023. 5. 29.
배치 정규화(Batch Normalization) Normalizing training sets신경망의 훈련을 빠르게 할 수 있는 하나의 방법중에 입력으로 들어오는 Feature들을 정규화(Normalizing)이 있다. 위의 표는 두 개의 입력 특성을 가진 훈련 데이터 세트의 분포(산포도)를 나타낸 표다. 두 단계에 따라서 입력을 정규화한다. 1). 데이터 세트의 평균을 0으로 만든다.μ = 1/m 곱하기 1부터 m까지 $x^{(i)}$의 합으로 평균값을 나타내는 벡터다.x는 그럼 모든 훈련 데이터에 대해서 x-μ로 설정된다. (원래 값에서 평균값을 빼주는 것)0의 평균을 갖게 될 때까지 훈련 세트를 이동한다. 2). 분산을 정규화한다. 아직 특성 x1이 x2보다 더 큰 분포도를 가지니, 이 둘을 맞춰주기 위해 분산을 정규화한다.$σ^2$ = 1/m .. 2023. 5. 20.
Feature Scaling (ft. 입력 특성 정규화하기) 해당 글은 유튜브 채널(https://www.youtube.com/@Deeplearningai) 의 Machine Learning강의를 정리한 글입니다.  집의 크기와, 방의 개수에 따라 집의 가격을 예측하는 다중 선형 회귀 모델이다. 집의 사이즈의 범위는 방의 개수의 범위보다는 훨씬 클 것이다. 예로 집의 사이즈 범위를 300~2000, 방의 개수의 범위를 0~5라 친다면 큰 가중치를 작은 피처값에 적용하는 것이 합리적일 것이다.  하나의 데이터 샘플을 가지고 가중치를 줘보자. [ $x_1 = 2000, x_2 = 5, 집의 가격 = $500k$ ]하단의 왼쪽 식이 큰 가중치 $w_1$값을 큰 피처값 $x_1$에 부여한 경우다. 최종값이 너무 커져버러셔 실제 집의 가격(500k 달러)와 차이가 너무 크.. 2023. 5. 19.
최적화 알고리즘 (ft. Momentum, RMSprop, Adam) 경사 하강법보다 빠른 몇 가지 최적화 알고리즘이 존재한다. 그 알고리즘들을 이해하기 위해서는 먼저 지수 가중 평균(Exponentially weighted averages)을 이해해야한다지수 가중 평균에 대한 글은 아래 글을 참조해주세요. 지수 가중 평균(Exponentially weighted averages)해당 글은 유뷰트 채널(https://www.youtube.com/@Deeplearningai) 의 Improving Deep Neural Networks 강의를 정리한 글입니다. Exponentially weighted averages(지수 가중 평균) 경사 하강법보다 빠른 몇 가지 최적화 알고리bruders.tistory.com Gradient descent with momentum모멘텀 알고.. 2023. 5. 18.