본문 바로가기

밑바닥부터시작하는딥러닝4

다차원의 배열 계산 넘파이 배열 다차원 배열의 계산을 익히면 신경망을 효율적으로 구현할 수 있다. 보통 넘파이로 다차원 배열 계산을 하기에 넘파이와 다차원 배열에 대해 알아보자. import numpy as np # 넘파이 라이브러리 불러오기 넘파이 배열을 사용하려면 위 코드를 선언해주면서 넘파이 라이브러리를 불러와야 한다. 다차원 배열도 그 기본은 숫자의 집합이다. 숫자가 한 줄로 늘어선 것이나 직사각형으로 늘어놓은 것, 3차원으로 늘어놓은 것이나 N차원으로 나열하는 것을 통틀어 다차원 배열이라고 한다. 넘파이에선 array 함수를 통해 N차원 배열을 만들 수 있다. A = np.array([1, 2, 3, 4]) print(A) # [1 2 3 4] print(np.ndim(A)) # 1 print(A.shape) # .. 2023. 5. 26.
손글씨 숫자 인식 저번에 신경망의 구조를 배웠으니 이젠 실전에서 적용해볼 차례이다. 이번에 해볼 것은 손글씨 숫자 분류이다. 기계학습과 마찬가지로 신경망도 두 단계를 거쳐 문제를 해결한다. 먼저 훈련 데이터(학습 데이터)를 사용해 가중치 매개변수를 학습하고, 추론 단계에서는 앞서 학습한 매개변수를 사용하여 입력 데이터를 분류한다. 이런 추론 과정을 신경망의 순전파(forward propagation)이라고 하고, 이것을 오늘 구현할 것이다. MNIST 데이터셋 이번에 사용하는 데이터셋은 MNIST라는 손글씨 숫자 이미지 집합이다. MNIST는 기계학습 분야에서 아주 유명한 데이터셋이다. MNSIT 데이터셋은 28x28크기의 회색조 이미지이며 각 픽셀은 0부터 255까지의 값을 취한다. 또한 이미지들은 0부터 9까지 숫자 .. 2023. 5. 25.
신경망 전에 배웠던 퍼셉트론에선 가중치를 설정하는 작업을 여전히 사람이 수동으로 했었다. 이런 점을 해결하기 위해 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력이 있는 신경망을 배운다. 퍼셉트론과 신경망 신경망을 그림으로 나타내면 위 그림처럼 된다. 여기서 가장 왼쪽 줄을 입력층, 맨 오른쪽 줄을 출력층, 중간 줄을 은닉층이라고 한다. 각층은 선으로 연결되어 있고, 이 선들은 각각의 가중치 값을 가진다. 은닉층의 뉴런은 보이지 않는다. 입력층에서 출력층 방향으로 차례로 0층, 1층..이라고 한다. ✨그림의 신경망은 3층이지만 가중치를 갖는 층은 2개뿐이기 때문에 2층 신경망이라고 한다. 하지만 글에 따라서는 3층 신경망이라고 하는 경우도 있으니 주의해야 한다. 그림을 보면 앞 장에서 본 퍼셉.. 2023. 5. 24.
퍼셉트론 퍼셉트론이란? 퍼셉트론은 프랑크 로젠 블라트(Frank Rosenblatt)가 1957년에 고안해 1958년에 만들어진 알고리즘이다. 처음엔 기계장치로 만들어져 이미지 인식을 목적으로 만들었다. 퍼셉트론은 신경망(딥러닝)의 기원이 되는 알고리즘이기 때문에 딥러닝의 기초에 상당히 중요한 역할을 맡고 있다. 퍼셉트론은 Perception(지각하다) 와 Neuron(뉴런)의 합성어로 그 이름에서도 알 수 있듯이 감각 기관을 통해 대상을 인식하는 뉴런을 뜻한다. 때문에 퍼셉트론을 배우기 전에 그 근간이 되는 뉴런이 인식하는 방법을 알고 가는 것이 나중에 이해할 때 도움이 된다. 퍼셉트론의 구조 퍼셉트론의 구조를 보기 전, 먼저 뉴런의 구조를 본다. 뉴런은 우리 몸에서 신경전달물질을 통해 신호를 전달하고 정보를 .. 2023. 5. 16.