Book Review42 4장. 신경망 학습 이전 챕터에서는 신경망의 기초적인 개요에 대해 살펴봤다. 이번장에서는 데이터를 통해 신경망이 어떤 식으로 가중치 매개변수를 갱신하는지 알아본다! 이를 위해 신경망이 학습할 수 있도록 해주는 지표인 손실 함수를 살펴보고, 이 손실 함수의 결괏값을 가장 작게 만드는 가중치 매개변수를 찾는 방법인 함수의 기울기를 활용하는 경사하강법을 소개하고 있다. 4.1 데이터로부터 학습한다! 신경망은 데이터를 통해 학습한다는 점이 특징이다. 신경망이 데이터를 보고 가중치 매개변수를 자동으로 결정한다는 의미이다! 이처럼 머신러닝, 딥러닝에서는 데이터가 생명이다. 데이터가 있어야 결국 적절한 매개변수 값을 찾기 때문이다. 자동으로 알고리즘을 결정한다는 것은 전통적인 프로그래밍과 다른 인공지능의 특징이다. 다음 포스팅에서 설명.. 2023. 10. 4. 3장. 신경망 퍼셉트론을 쌓음으로써 복잡한 함수(선형적 + 비선형적)를 표현할 수 있다는 것을 확인했다. 하지만 우리가 직접 W,b(가중치)를 정해줘야 한다는 점이 큰 단점으로 작용한다. 이를 해결하기 위해 등장한 신경망은 데이터로부터 가중치의 매개변수 값을 자동적으로 학습한다. 이번 장은 신경망의 학습 방법에 대해 알기 전에 신경망의 개요와 입력 데이터를 식별하고 처리하는 과정에 대해 기초부터 개괄적으로 알려주고 있다. 1. 퍼셉트론과 비슷한 딥러닝 신경망 이전 장에서 배웠던 퍼셉트론은 신경망과 공통점이 많다. 하지만 차이점도 명확한데 이를 중점으로 보여준다..! 공통점은 노드가 서로 연결되어 임계값을 정해줄 활성화 함수를 사용하여 그 출력값을 다음 노드로 전달한다는 점이다. 반면 차이점은 퍼셉트론은 이를 위해 사람.. 2023. 10. 4. 2장. 퍼셉트론 리뷰에 앞서 이번에 공부할 책에 대해 소개를 하자면, 책의 이름은 '밑바닥부터 시작하는 딥러닝'이다. 총 3권으로 구성되어 있으며, 이번에 공부할 책은 밑시딥 1권이다. 밑시딥 1권에서는 딥러닝이 전반적으로 어떻게 학습되는지에 대해 서술하고 있으며 이후 convolution net에 대해 간략히 설명이 되어 있다. 밑시딥의 특징은 tensor flow, keras, pytorch와 같은 딥러닝 라이브러리나 모듈을 사용하지 않고 python numpy로 하드코딩하는 식으로 개념을 이해할 수 있도록 실습을 진행한다는 것이다. 이러한 점이 기초를 이해하기에 더욱 좋았다. 그렇다면 바로 본론으로 들어가보자! - 퍼셉트론(perceptron) 퍼셉트론(Perceptron)은 인공 신경망(Aritificial Ne.. 2023. 9. 17. 파이토치: 데이터 적합(훈련하기) 딥러닝은 기본 블럭인 뉴런(neuron)을 바탕으로 입력에 대하 선형 변환에 비선형 함수를 적용하는 역할을 수행합니다. 이를 통해 학습이 이뤄지는 것입니다. 이전 포스팅에서 해당 내용과 같이 모델이 어떻게 학습하는지 큰 그림을 그려봤으므로, 이번 포스팅에서는 파이토치 모듈을 활용하여 모델 아키텍처를 만들고 실제로 데이터가 어떻게 적합되는지, 학습되는지 알아보도록 하겠습니다. 1. 파이토치 nn모듈 파이토치에는 신경망 전용 서브모듈(module)이 있습니다. 이 모듈로 신경망 아키텍처를 만들 수 있는 빌딩 블럭이 있는데, 이를 모듈이라고 부릅니다. 파이토치의 모듈은 nn.Module 베이스 클래스에서 파생되었습니다. 하나이상의 parameter객체를 인자로 받는데 이는 텐서타입입니다. -forward와 _.. 2023. 5. 12. 순환 신경망(RNN)의 개념 RNN이란 순환 신경망을 일컫는 말로, recurent neural network의 약자입니다. 순환 신경망은 순차 데이터, 시계열 데이터를 이용하는 인공 신경망의 한 유형입니다. 이미지 데이터를 다루는 인공 신경망은 CNN인 것 처럼요! CNN는 이미지 데이터를 다루는 딥러닝 알고리즘으로 이미지 분류, 분할, 탐지 등 다양한 분야에서 쓰이지만, 반면 RNN은 순차 데이터를 다뤄 언어 변환, 자연어 처리, 음성 인식 등의 분야에 쓰입니다. CNN이 인간의 눈과 같은 역할이면, RNN은 인간의 뇌와 같은 역할을 한다고 볼 수 있습니다. 이번 포스팅에서는 RNN의 개념과 관련된 내용에 대해 알아보겠습니다. 1. 순차 데이터 앞서 말씀드린 것 처럼 RNN은 순차 데이터 혹은 시계열 데이터를 학습하는 딥러닝 알.. 2023. 5. 10. Data to Tensor: 이미지, 테이블, 시계열 , 텍스트 데이터를 텐서로 지난 포스팅에서 텐서는 파이토치 데이터의 하나의 블록으로써 구조를 만들어내는 단위와 같다는 것을 배웠습니다. 실제로 딥러닝 모델이 입력으로 받는 것도, 출력으로 내보내는 것도 모두 텐서입니다. 학습 과정에서 갱신되는 파라미터들도 모두 텐서의 형태입니다. 따라서 파이토치의 딥러닝의 핵심은 데이터를 어떻게 텐서로 변환하는지 그 과정을 아는 것입니다. 이번 포스팅에서는 다양한 데이터 형태를 텐서로 표현하는 방법에 대해 알아보도록 하겠습니다. 각 주제에 대해 간단한 예시 데이터로 알아볼 예정입니다. 1. 이미지 데이터 컴퓨터 비전 분야에서 이미지를 다루는 컨볼루션 네트워크(CNN)는 큰 혁명을 불러왔습니다. 이를 가능하게 하기 위해서는 이미지 포맷을 읽어 파이토치의 딥러닝 모델이 기대하는 방식에 맞춰 이미지의 .. 2023. 4. 5. 모델 학습 기법 기초 인공지능, 머신러닝, 딥러닝은 데이터로부터 무언가를 배우는 작업입니다. 데이터에 맞춰가는 과정과 학습하는 알고리즘을 만드는 과정이 그것인데요. 그렇다면 "데이터로부터 배운다"라는 것이 무엇을 의미하는 걸까요? 데이터로부터 배우는 것은 간단하게 말하면 특정 작업에 대한 데이터로 학습한 일반화된 모델을 만드는 것이라고 할 수 있겠습니다. 딥러닝의 핵심은 일반함수를 fitting하는 것에 있습니다. 이를 위해 이번 포스팅에서는 학습 알고리즘의 동작 방식에 대해 알아보도록 하겠습니다. 1.학습의 과정 딥러닝에서 학습은 결국 파라미터(가중치)를 추정하는 것에 불과합니다. 입력 및 출력에 대응하는 ground truth와 가중치 초깃값이 주어지면, 모델에 입력이 들어가서 실측값과 모델의 예측값을 비교하여 그 오차를.. 2023. 4. 5. 파이토치: 텐서(Tensor) 구조체 이미지나 텍스트 같은 비정형의 데이터를 처리하기 위해서는 여러 가지 형태의 데이터로 만드는 것이 필요합니다. 부동소수점 수로 변환하는 것이 그 예시입니다. 입력데이터를 부동소수점 수로 변환하면 딥러닝 프로세스에서도 비슷한 표현을 가질 것입니다. 입력 데이터가 딥러닝 프로세스에 들어가기 전에 어떻게 인코딩 되어야 하고, 출력으로 나온 결괏값을 우리가 해석할 수 있도록 디코딩하는 것이 필요합니다. 입력 데이터를 부동소수점으로 바꾸기 전에 입력과 중간 표현, 출력에서 어떻게 데이터를 다루는지 알 필요가 있습니다. 이때 등장하는 것이 텐서(Tensor)입니다. 텐서란 다차원 배열을 의미합니다. 즉, 임의의 차원을 가지는 벡터나, 행렬의 일반화된 개념이라고 생각하면 됩니다. 이를 정리한 포스트가 있으니 참고해 주.. 2023. 3. 24. 컴퓨터 비전을 위한 고급 딥러닝 이전의 포스팅에서 Convnet을 통해 이미지 분류 모델을 살펴보고 잘 분류되는 것을 확인할 수 있었습니다. computer vision분야에서 합성곱 신경망은 주로 다음과 같은 분야에서 활용됩니다. 1. 이미지 분류 : 이미지에 포함된 사물의 클래스를 분류하는 것입니다. 이미지 분류에는 크게 두 가지가 있습니다. 단일 레이블 분류(single-label classification) 예제: 한 장의 사진에서 고양이, 강아지, 사람, 자전거, 자동차 등 중에하 하나의 클래스 선택 다중 레이블 분류(multi-label classification) 예제: 한 장의 사진에 포함된 여러 종류의 객체를 모두 분류. 예를 들어 두 사람이 자전거를 타는 사진에서 두 사람과 자전거 등 사진에 포함된 모든 객체의 클래서.. 2023. 3. 24. 이전 1 2 3 4 5 다음