ML & DL

텐서란 데이터의 배열(array)을 의미한다. 1. 텐서의 연산 1-1. 사칙연산 텐서의 사칙연산은 단순하게 원소 단위로 연산하는 것을 의미한다. 다음과 같이 같은 행, 열에 있는 원소들끼리 사칙연산을 수행하면 된다. 1-1-1. 사칙연산 코드 tensor_a = torch.tensor([[1, -1], [2, 3]]) tensor_b = torch.tensor([[2, -2] ,[3, 1]]) print('덧셈') print("a+b : \n", tensor_a + tensor_b) print("torch.add(a,b) : \n", torch.add(tensor_a, tensor_b)) print('뺄셈') print("a-b : \n", tensor_a - tensor_b) print("torch...
오늘은 다양한 데이터 증강 기법들에 대하여 간단하게 정리하였다. 일반적으로 데이터가 충분하지 않다면 과적합이 일어나기 때문에 충분한 양의 데이터를 확보하는 것은 중요하다. 그러나 더 이상 새로운 데이터를 얻을 수 없는 경우, 데이터 증강기법등을 사용해 볼 수 있다. 다만 데이터 증강을 진행할 때 함부로 데이터를 변형하여 증폭시키면 안되고, 해당 데이터의 도메인을 잘 고려해서 처리해야 한다. 예를 들어 객체 인식을 하고 있는데, 이미지를 크롭 하였는데 해당 영역에 객체가 없거나 숫자 6을 돌려서 9로 만들어버리는 등 문제가 생길 수도 있으므로 적절한 기법을 이용해야 한다. 이미지 데이터 증강 기본적으로 이미지 데이터 증강 기법에는 `Resize:사이즈조절`,`Rotation:회전`,`Flipping:뒤집기..
모델에서 최적화의 목표는 손실함수(Loss function)의 값을 최소로 만들어줄 수 있는 가중치 Weight를 효율적으로 찾는 것이라고 여러 번 말했었다. $$ w^* = \arg\min_w L(w) $$ 이러한 최적화 알고리즘 중 경사하강법, 스토케스틱 경사하강법, 미니배치 경사하강법을 이전에 알아봤었다. Gradient Descent: 경사하강법 딥러닝에서 손실 함수의 값이 최소가 되도록 모델의 파라미터를 조정하는 최적화 알고리즘에 대하여 정리해 봤다. 우선 최적화알고리즘에 쓰이는 경사하강법을 알기 전에 미분에 대하여 먼저 changsroad.tistory.com 이번에는 경사하강법을 발전시킨 다양한 옵티마이저들을 알아보겠다. 1. Gradient Descent 손실함수의 기울기를 계산하여, 기울..
1. Weight Initialization 신경망의 주목적은 손실을 최소화하는 것이며 이를 위해서는 파라미터 최적화가 필수적이다. 이를 위해 경사하강법, 미니배치경사하강법 등 최적화 기법을 배웠었는데, 그 기법들을 사용하며 계산되는 가중치도 최적화기법이 존재한다. 이를 알아보도록 하자. 가중치 초기화, Weight Initialization을 제대로 하지 않으면, 기울기 소실 혹은 학습시간이 엄청 오래 걸리는 등 모델 학습이 효율적으로 진행되지 않는다. 가중치가 매우 높거나, 작게 초기화되면 일반적으로 사용하는 활성화 함수인 sigmoid나 relu를 사용하였을 때 기울기가 0에 가까워지게 되기 때문에 기울기가 천천히 변하며 학습에 오랜 시간이 걸리게 되고 기울기 소실도 발생한다. 또한 각 활성화 함수..
이번시간에는 모델 성능과 관련된 여러 가지 문제점 및 해결법등에 대하여 알아보도록 하겠다. 1. 과적합과 과소적합 모델 훈련과정에서 학습데이터의 오차가 일반화 오차에 비해서 현격하게 낮아지는 현상을 Overfitting(과적합)이라고 부르고, 학습데이터의 오차가 매우 큰, 정확히 예측하지 못할 경우 Underfitting(과소적합)되었다고 부른다. 제일 왼쪽 그림과 같이 모델이 너무 간단하여 예측자체를 못하는 그래프가 Underfit. 제일 오른쪽 그림과 같이 모델이 너무 복잡하여 학습데이터셋에만 딱 맞는 그래프를 Overfit. 가운데 그림처럼 모델이 적당하게 구성되어 train, test 셋에서 모두 성능이 좋은 경우를 가장 이상적인 학습이라고 본다. 이러한 underfitting과 overfitti..
이번에는 순환신경망: RNN과 RNN의 한계를 보완하여 나온 LSTM, GRU에 대하여 공부해 볼 것이다. 이는 아주 많이 쓰이는 모델 구조이기 때문에 잘 알아두면 좋을 것이다. 0. 순환신경망의 등장 기존에 딥러닝은 합성곱신경망을 기반으로 많이 발전을 했었다. 그런데 이러한 합성곱 신경망은 고정된 크기의 입력과 출력을 처리하도록 설계되었다. 따라서 고정된 크기를 요구하는 이미지 분류 등의 task에는 훌륭했다. 이러한 합성곱 신경망에서는 모델 학습 때와 동일한 사이즈로 입력을 resize 해줌으로써 사용할 수 있었다. 그러나 텍스트, 음성 등은 길이가 고정되어있지 않은 sequence 데이터이고, 이러한 seqeunce데이터는 고정된 크기가 아닐뿐더러 과거의 정보를 기억하면서 현재의 입력도 동시에 처리..
창빵맨
'ML & DL' 카테고리의 글 목록 (6 Page)