본문 바로가기
반응형

ML & DL/밑바닥부터 시작하는 딥러닝7

[파이썬 딥러닝] 활성화 함수 계층 구현하기 ReLU 계층 활성화 함수로 사용되는 ReLU 수식은 다음과 같습니다. x에 대한 y의 미분은 다음과 같습니다. 순전파 때의 입력인 x가 0보다 크면 역전파는 상류의 값을 그대로 하류로 흘립니다. 반면, 순전파 때 x가 0 이하면 역전파 때는 하류로 신호를 보내지 않습니다.(0을 보냅니다.) 계산 그래프로는 다음과 같습니다. class Relu: def __init__(self): self.mask = None def forward(self, x): self.mask = (x 2023. 3. 29.
[파이썬 딥러닝]순전파와 역전파 기초 덧셈 노드의 순전파와 역전파 순전파는 우리가 알고 있는 덧셈입니다. 위 그림을 보면 덧셈노드를 통해 더하게 됩니다. 따라서 순전파를 통과하면 z = x + y라는 식이 나옵니다. 이 식을 편미분을 하게되면 z를 x에 대해 미분해도 y를 통해 미분해도 모두 1이 됩니다. 따라서 역전파때 상류에서 전해진 미분값을 그대로 하류로 흘리게 됩니다. 곱셈 노드의 순전파와 역전파 곱셈 노드도 순전파는 덧셈 노드와 크게 다르지 않습니다. 우리가 알고 있던 곱셈입니다. z = xy라는 식을 미분하면 z를 x에 대해 미분 했을대 y가 되고 z를 y에 대해 미분 했을때 x가 남게 됩니다. 따라서 곰셈의 역잔파에서는 입력 신호를 바꾼 값을 곱하여 흘려 보내줍니다. 때문에 곱셈의 역전파는 순방향 입력 신호의 값이 필요합니다. .. 2023. 3. 28.
[파이썬 딥러닝] 학습 알고리즘 구현 신경망 학습 절차 전제 신경망에는 적응 가능한 가중치와 편향이 있고, 이 가중치와 편향을 훈련 데이터에 적응하도록 조정하는 과정을 '학습'이라고 합니다. 신경망 학습은 다음과 같이 4단계로 수행합니다. 1단계 - 미니배치 훈련 데이터 중 일부를 무작위로 가져옵니다. 이렇게 선별한 데이터를 미니배치라 하며, 그 미니배치의 손실 함수 값을 줄이는 것이 목표입니다. 2단계 - 기울기 산출 미내배치의 손실 함수 값을 줄이기 위해 각 가중치 매개변수의 기울기를 구합니다. 기울기는 손실 함수의 값을 가장 적게 하는 방향을 제시합니다. 3단계 - 매개변수 갱신 가중치 매개변수를 기울기 방향으로 아주 조금 갱신합니다. 4단계 - 반복 1 ~ 3단계를 반복합니다. 이것이 신경망 학습이 이뤄지는 순서입니다. 이는 경사 하.. 2023. 3. 24.
[파이썬 딥러닝] 수치 미분 미분 미분이란? 한순간의 변화량을 표시한 것 수식 파이썬으로 구현한 미분 def numerical_diff(f, x): h = 1e-50 return (f(x + h) - f(x)) / h 그러나 이 방식은 반올림 오차 문제를 일으킵니다. 반올림 오차는 작은 값이 생략되어 최종 계산 결과에 오차를 생기게 합니다. import numpy as np np.float32(1e-50) [출력] 0.0 위와 같이 작은 값을 넣어 0으로되어 버리는 오차를 말합니다. 이를 개선하기 위해서 두가지 방법이 있습니다. 첫째로는 h를 10 ^ -4를 사용하여 컴퓨터로 계산하는데 문제가 되지 않도록 하는 방법입니다. 둘째로는 차분을 이용하는 방법입니다. 차분 '진정한 미분'은 x 위치의 함수의 기울기에 해당하지만, 이번 구현.. 2023. 3. 22.
[파이썬 딥러닝] 신경망 학습 학습 학습이란? 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 뜻한다. 훈련 데이터와 시험 데이터 기계 학습 문제는 데이터를 훈련 데이터(train data)와 시험 데이터(test data)로 나눠 학습과 실험을 수행하는 것이 일반적입니다. 우선 훈련 데이터만 사용하여 학습하면서 최적의 매개변수를 찾습니다. 그런 다음 시험 데이터를 사용하여 앞서 훈련한 모델의 실력을 평가하는 것입니다. 훈련 데이터와 시험 데이터를 나누는 이유는 우리가 원하는 모델은 범용적으로 사용할 수 있는 모델이기 때문입니다. 이 범용 능력을 제대로 평가하기 위해 훈련 데이터와 시험 데이터를 분리하는 것이죠. 범용 능력은 아직 보지 못한 데이터로도 문제를 올바르게 풀어내는 능력입니다. 이 범용 능력을 획득하는 .. 2023. 3. 16.
[파이썬 딥러닝] 신경망 퍼셉트론에서 신경망으로 신경망을 그림으로 나타내면 가장 왼쪽 Input(입력층), 중간 Hidden(은닝층), 오른쪽 Output(출력층)이라고 합니다. 은닉층의 뉴런은 사람 눈에는 보이지 않는습니다. 퍼셉트론 복습 X1과 X2라는 두 신호를 입력받아 Y를 출력하는 퍼셉트론입니다. 이 퍼셉트론을 수식으로 나타내면 다음과 같습니다. 여기서 b는 편향을 나타내는 매개변수로, 뉴런이 얼마나 쉽게 활성화되느냐를 제어합니다. 한편, w1과 w2는 각 신호의 가중치를 나타내는 매개변수로, 각 신호의 영향력을 제어합니다. 위의 네트워크에는 편향 b가 보이지 않는데 편향 b를 명시한다면 다음과 같습니다. 활성화 함수 활성화 함수란 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할입니다. 시그모이드 함수 신경망에서 .. 2023. 3. 14.
[파이썬 딥러닝] 퍼셉트론 퍼셉트론은 신경망의 기원이 되는 알고리즘 퍼셉트론이란? 퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호(전류나 강물처험 흐름)를 출력합니다. 퍼셉트론의 신호는 0과 1의 두 가지 값만 가집니다. 그림의 원을 뉴런 혹은 노드라고 부릅니다. 입력 신호가 뉴런에 보내질 때는 각각 고유한 가중치가 곱해지고 뉴런에서 보내온 신호의 총합이 정해진 한계를 넘어설 때만 1을 출력합니다. 이때 그 한계값을 임계값(Θ)이라고 합니다. 위 그림을 보면 입력 x1과 입력 x2가 들어온 후 각각의 가중치 w1과 w2와 곱해진 후 출력 y가 됩니다. 이때 y값이 일정 한계(Θ)를 넘어서면 1이 출력되고 넘지 못하면 0이 됩니다. 논리 회로 AND 게이트 AND게이트를 퍼셉트론으로 표현하면 위의 진리표대로 작동하도록 하는 w1.. 2022. 12. 21.
반응형