[밑시딥1] Convolution 연산을 컴퓨터는 어떻게 할까? – 7장

CNN에서 Convolution 연산은 3차원의 feature map과 3차원의 filter의 곱입니다. 컴퓨터는 2차원인 행렬을 계산하는데 최적화 되어 있습니다. 그렇다면 Convolution연산은 어떻게 구현되어 있을까요? Convolution 연산의 구현 일단 이미지와 Batch형태로 4차원 입력데이터(batch, channel, x, y)가 들어오면 2차원으로 변형합니다. 하나하나 뜯어 줄세우는 것입니다. 정확히는 필터를 적용할 영역(3차원)을 1줄로 펼쳐서 이것을 합친 것이 2차원이 되는 것입니다. (아래 그림 참조) 위와 … Read more

[밑시딥1] Weight Decay와 Dropout – 6장

Overfitting 방지로 Weight Decay와 Dropout이 많이 사용됩니다. 한 번 알아봅시다 Weight Decay란? 신경망 학습시 weight가 너무 큰 값을 가지지 않도록 패널티를 주는 방식입니다. loss func에 L2 Norm을 더하는 방식으로 구현되어 있습니다. L2 Norm의 수학적 정의 L2 노름은 개별 weight의 제곱의 합이라고 생각하시면 됩니다. Weight Decay의 적용 방법 각 weight의 제곱의 합을 loss func에 더함으로써 너무큰 … Read more

[밑시딥1] 신경망 파라미터 초기값 설정하는 법. Xavier, He 초기화 방법 – 6장

신경망의 Weight의 시작 값은 어떻게 해주어야 할까요? 신경망의 Weight값이 모두 0이거나 모두 같으면 문제가 발생합니다. Weight 갱신 시 Gradient가 같아서, Weight가 같은 값으로 갱신되기 때문입니다. ‘곱셈 노드의 역전파 그래프’ 를 떠올리면 이해가 쉽습니다. 각 층이 모두 같은 Weight를 가진다면 미분값이 모두 같게 되겠죠? 초기에는 신경망의 Weight 값을 표준편차가 0.01인 정규분포를 따르는 난수로 초기화 했었습니다만 표현력이 … Read more

[밑시딥1]신경망의 파라미터 최적화 방법, SGD와 AdaGrad, Adam – 6장

SGD 신경망 파라미터를 갱신하여 최적의 값을 찾아내는 것이 optimization입니다. 이렇게 최적화는 기울기를 업데이트 하는 것인데, 가장유명한 방법중 하나가 SGD입니다. SGD의 구현 SGD의 단점 비등방성함수(anisotropy)에서 탐색경로가 비효율적이라는 것. 무작정 기울어진 방향으로 진행하는 SGD보다 나은 최적화 기법이 필요합니다. SGD의 모멘텀 신경망의 파라미터를 갱신할 때, 이전 단계의 Gradient와 현재 Gradient의 방향이 같으면 값이 계속 누적되어서 Gradient가 커지는 효과가 … Read more

[밑시딥1] 신경망에서 미분의 의미? 신경망의 파라미터를 자동으로 갱신하는 방법 – 4장 신경망학습

신경망에서 미분은 어떤 의미일까요? 신경망의 파라미터는 학습이라는 과정을 통해 자동으로 갱신되게 됩니다. 어떻게 자동으로 갱신될까요? 일단, 손실함수(loss fn)를 정의하고 손실함수의 값이 줄어드는 방향으로 학습하게 됩니다. 손실함수는 데이터와 신경망에 목적에 맞게 정의하면 됩니다. ‘신경망을 학습한다’라는 것 신경망을 학습(갱신)한다는 의미는 다층퍼셉트론의 w, b를 갱신한다는 의미이며, 수천만개 이상의 w와 b가 있다고 생각해봅시다. w, b는 신경망의 파라미터라고 하며, 파라미터를 … Read more

[밑시딥1] 활성화함수가 중요한 이유 – 3장 신경망

신경망에서 활성화함수가 왜 중요할까요? 신경망은 입력층 은닉층 출력층으로 이루어져 있고, 이런 각각의 퍼셉트론층에 비선형성을 부여하는 것이 필요하기 때문입니다. 이것을 가능하게 해주는 것이 활성화함수입니다. 퍼셉트론에 비선형성을 부여하는 게 왜 중요한가? 퍼셉트론에 비선형성을 부여하기 위해 활성화함수를 사용한다는 것은 많이 들어보셨을 겁니다. 선형적인 퍼셉트론을 수백 수만층 쌓아봐야 한 층의 퍼셉트론과 다를 바가 없기 때문입니다. (선형적인 퍼셉트론 100층은 결국 … Read more

[밑시딥1] 퍼셉트론 이란? – 2장 퍼셉트론

퍼셉트론 이란? 퍼셉트론 개념 인공신경망의 가장 기본적인 형태 중 하나로 입력값에 가중치를 곱한 후, 모든 가중치의 합에 대해 활성화 함수를 적용하여 출력값을 결정하는 방식으로 작동합니다. 가장 간단한 형태의 선형 분류기입니다. 퍼셉트론의 기본 구성 요소는 다음과 같습니다: 퍼셉트론의 한계 퍼셉트론의 가장 큰 한계는 선형적으로 구분 가능한 문제(linearly separable problems)만 해결할 수 있다는 점입니다. 즉, 데이터를 선형 … Read more

[밑시딥1] 넘파이 주요기능 – 1장 헬로파이썬

넘파이 브로드캐스트 (Numpy broadcast) NumPy 브로드캐스팅(broadcasting)은 서로 다른 형태(shape)의 배열 간에 산술 연산을 가능하게 하는 기능입니다. 낮은 차원의 배열이 더 높은 차원의 배열과 연산할 수 있도록 확장됩니다. 예를 들어, (5,4) 배열과 (1,4) 배열이 있을 때, 첫 번째 차원은 1이므로 5로 확장됩니다. 하지만 브로드캐스팅은 메모리를 실제로 복제하진 않습니다. 브로드캐스팅이 가능하려면 다음 두 조건 중 하나를 만족해야 … Read more