'분류 전체보기' 카테고리의 글 목록 (8 Page)

분류 전체보기 141

최적화 알고리즘 (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모멘텀 알고..

지수 가중 평균(Exponentially weighted averages)

해당 글은 유튜브 채널(https://www.youtube.com/@Deeplearningai) 의 Improving Deep Neural Networks 강의를 정리한 글입니다. Exponentially weighted averages(지수 가중 평균)경사 하강법보다 빠른 몇 가지 최적화 알고리즘이 존재한다. 그 알고리즘들을 이해하기 위해서는 먼저 지수 가중 평균(Exponentially weighted averages)을 이해해야한다.  (통계학에서는 지수 가중 이동 평균이라고도 부른다.)지수 가중 평균(=지수 이동 평균)이란, 데이터의 이동 평균을 구할 때, 오래된 데이터가 미치는 영향을 지수적으로 감쇠(exponential decay) 하도록 만들어 주는 방법이다.  지수 가중 평균의 예위의 그래..

경사하강법의 세 종류(BGD, SGD, MGD)

경사하강법(Gradient Descent Algorithm)경사 하강법은 최적화 알고리즘 중 하나로, 손실 함수(Loss Function)의 값을 최소화하는 파라미터[가중치(weight)와 편향(bias)]를 구하기 위해 손실함수에 대한 각 매개변수의 기울기(Gradient)를 이용하는 방법이다.이 때 기울기가 0인 지점인 손실함수의 값이 최저인 곳이므로 그 지점에 도달하기위해 매개변수는 기울기의 반대방향으로 움직여야 한다. 그래서 경사하강법에서 미분값의 -만큼 빼주는 값으로 가중치를 업데이트하는 것이다.위에선 예시로 가중치에 대해서만 얘기했으나 다른 매개변수인 편향(Bias)에 대해서도 동일하게 적용된다. 결국 최적해에 도달할때까지 매개변수 업데이트를 반복(Iteration)하는 것인데 하나의 반복에서..

풀링(Pooling) ft. Max & Average Pooling

합성곱 신경망에서 합성곱 연산과 활성화 함수 ReLU로 이루어진 합성곱층 다음에는 보통 풀링층이 존재한다. 풀링층은 각 특징맵에서 독립적으로 작동한다. 풀링은 특징 맵의 높이와 너비를 줄임으로써 특징 맵의 해상도를 낮추지만 분류에 필요한 맵의 특징은 유지시키는데 이를 다운 샘플링(Down-sampling)이라고 한다. 풀링층을 사용하는 이유 : 표현의 공간 크기를 점진적으로 줄여 네트워크의 매개변수 및 계산량을 줄이고 과적합을 제어할 수 있다. 최대 풀링(Max Pooling) 풀링에서 사용하는 일반적인 방법은 최대값을 추출하는 위와 같은 맥스 풀링이다. 필터와 겹치는 영역안에서 최대값만을 추출한다. 위의 예시는 2 x 2 의 필터로 4 x 4 의 크기를 가진 입력이미지에 스트라이드 = 2를 적용했을 때..

합성곱 신경망(Convolution Neural Network)

지난번에 다수의 필터를 사용한 합성곱 연산의 예시를 보았다. 사실 각 필터마다 나온 결과 특성맵이 쌓이기 전 각 특성맵들은 Relu 함수를 거친 다음에 합쳐진다. 즉 하나의 합성곱층은 합성곱의 연산으로만 이루어진 것이 아니라 Relu 함수인 활성화함수 이렇게 두가지로 이루어져있다. 합성곱 신경망의 한 계층(합성곱층)을 위의 예시로 구성해보자. 1). 입력 데이터를 필터와 합성곱 연산한다. (결과: 4 x 4) 2). 그 각각의 결과에 편향(+ b[실수])을 더해준다. 편향 ‘b’는 하나의 실수지만 파이썬의 브로드캐스팅을 통해서 4 x 4 행렬에 맞게 16 개의 요소에 동일한 수를 더해주어 행렬과의 계산이 가능하게 해준다. 4). 편향을 더 해준 그 값에 비선형성(활성화함수로 ReLU 사용)을 적용해준다...

RGB 이미지의 합성곱 연산

지금까지는 위의 예시처럼 채널을 고려하지 않고 합성곱 연산을 했었는데, 실제 합성곱 연산의 입력이미지는 다수의 채널을 가지고 있거나 또는 이전 연산의 결과로 나온 특성 맵일 수도 있다. 그레이 스케일의 이미지의 경우 채널이 1개지만 RGB 이미지는 적,녹,청의 3개의 채널을 가지니 RGB 이미지를 예로 다수의 채널을 가진 입력 이미지의 합성곱 연산을 살펴보자. 입력이미지가 다수의 채널을 가진다면 필터 또한 같은 채널의 개수를 가져야 한다. “입력이미지의 채널 수 = 필터의 채널 수” 저 세 개의 행렬을 쌓은 것 같은 3 x 3 x 3 필터를 단순화시켜서 삼차원의 정육면체로 나타내볼 수 있다. 이때 합성곱 연산은 이전이랑 같은 방법이다. 이 정육면체의 필터를 입력 이미지의 가장자리부터 시작해 계산하면서 쭉..

패딩(Padding)

패딩 (Padding) 합성곱 연산에도 단점이 존재한다. 1). 위의 예시를 봐서도 알겠지만 합성곱 연산을 할 때마다 이미지가 축소된다. 이 작업을 여러 번 반복한다면 특성 맵은 초기 입력보다 매우 작아질 것이다. (1 x 1 크기만큼 축소될지도?) 윤곽선을 검출하거나 어떤 특성들을 찾아내려고 할 때마다 저렇게 이미지가 축소되는 걸 원하지는 않을 것이다. 2). 모서리 부분에 놓인 픽셀들의 정보들은 거의 날려버리게 된다. 입력 이미지의 모서리 부분에 있는 픽셀(파란 네모로 표기한)들을 보면 딱 한 번씩만 필터와 맵핑되니 결과 이미지인 특성 맵에 단 한번만 사용되는 것이다. 그만큼 다른 픽셀들과 비교했을 때, 결과 이미지에 덜 사용하게 되니 이 픽셀들의 정보들을 거진 사용하지 않게 되는 것이다. 이 두 문..

합성곱 연산(Convolution operation)

다충 퍼셉트론으로 이미지 인식 문제를 처리해야 한다고 가정해보자. 위의 고양이 이미지의 크기를 1000 x 1000이라 해보자. 추가로 칼라이미지라 채널을 3개를 가지니 해당 이미지의 차원은 1000 x 1000 x 3 으로 총 3백만 개의 픽셀값으로 이루어진 것이다. 따라서 신경망에서 입력층은 총 3백만개의 입력특징을 갖게 된다. 만일 이 신경망에서 첫 은닉층에서 1000개의 은닉노드가 있다면 첫번째 은닉층로 가는 매개변수의 수는 3,000,000 x 1000 = 삼십억개가 된다. 이렇게 변수가 크면 큰 만큼의 충분한 데이터를 얻어서 과적합을 방지하기가 어려워진다. 또한 메모리의 요구사항이 몇 십억개의 변수를 학습하기에는 적합하지 않을 수도 있다. 하지만 합성곱 연산을 통해 이미지의 크기에 대해 고민할..

픽셀(Pixel)과 채널(Channel)

합성곱 신경망을 통해 이미지가 어떻게 처리되는지 알아보기 전에 이미지가 컴퓨터에 어떻게 저장되는지 부터 알아보자. 8이라는 숫자가 써진 흑백이미지다. (그레이 스케일 이미지라고도 불린다.) 해당 이미지를 더 확대하고 자세히 살펴보면 이미지가 작은 사각형들로 이루어져 있는게 보인다. 이 각각의 작은 사각형들을 픽셀(Pixel)이라고 한다. 보통 이미지를 (높이 x 너비)라는 차원을 가진다 라고 하는데 이는 이미지의 크기를 의미한다. 이미지의 크기는 단순히 높이와 너비에 놓인 픽셀의 수로 위의 예시의 경우 높이에는 총 24개의 픽셀이, 너비에는 총 16개의 픽셀이 사용되어 24 x 16의 크기를 가진다. 가운데 사진을 보자. 각 픽셀은 저렇게 숫자 값으로 표시되며 이런 숫자들을 픽셀 값이라고 한다. 픽셀 값..

가중치 규제 (Weight Regularization) ft. 과적합 해결하기

해당 글은 유튜브 채널(https://www.youtube.com/@Deeplearningai) 의 Machine Learning 강의를 정리한 글입니다.  일반적으로 모델의 복잡도를 키우고, 과적합을 막는 방법론을 사용한다고 했다. 과적합을 해결할 수 있는 3가지의 방법을 알아보자. 1. 더 많은 훈련 샘플 모으기 과적합의 경우 각 훈련 샘플에 너무 잘 맞다보니 곡선의 형태가 둘쑥날쑥하다. 더 많은 훈련 샘플을 모으면 그만큼 모델의 들쑥날쑥한 정도가 줄어들어 우측 그래프처럼 일정하게 완만히 올라가는 그래프의 형태를 얻을 수 있다.   2. 피쳐들 중에 몇 개만 선택하기 많은 피처에 비해 데이터셋이 충분치 않으면 과적합을 유발할 수 있으니 필요할 것만 같은 피쳐만 뽑자. 이렇게 예측값(y)에 가장 영향을..