본문 바로가기

인공지능 공부/딥러닝 기초 공부

(9)
chapter 1 인공지능 딥러닝의 이해 - 3절 인공 신경망과 근사 함수 - 1항 2차 함수 근사해 보기 머신러닝 모델을 통해 2차 함수를 근사해 보겠다. 2차 함수로 대응되는 x, y 값들을 실제 데이터처럼 흩뜨려 학습 데이터를 만들고, 그 데이터를 통해 학습을 진행해 보겠다. 먼저, -2에서 0.5까지 범위의 값 1000개를 랜덤으로 생성해서 x값으로 하고, 이에 대응되는 y값을 계산해 저장한다. 10번째 줄은 랜덤으로 생성한 값들의 순서를 섞는 과정인데, 학습 데이터를 렌덤으로 섞는 과정은 머신러닝에서 굉장히 중요한 과정이다. y값을 위 아래로 흩뜨려 실제 데이터처럼 만든다. 1000개의 데이터셋을 800의 학습 데이터와 200개의 실험 데이터 나눈다. 파란색이 학습 데이터, 빨간색이 실험 데이터이다. 단위 인공 신경 16개로 구성된 은닉 층 2개와 하나의 단위 인공 신경을 가진 출력 층 하나를 가진 ..
chapter 1 인공지능 딥러닝의 이해 - 2절 딥러닝 맛보기 - 5항 머신러닝 방식의 신경망 함수 생성과 사용 머신러닝 방식으로 함수를 정의해 보겠다. 머신러닝에서는 여러 개의 데이터들과 그에 대응되는 답들을 통해 규칙을 만든다. 이번 실습에서는 아래와 같은 데이터 집합으로 모델을 만들어 보겠다. x -1 0 1 2 3 4 y -2 1 4 7 10 13 우리는 위의 표에 나와있는 데이터 셋을 보고 x와 y의 관계가 y = 3x + 1 이라는 것을 어림짐작 할 수 있다. 따라서 x가 10일 때의 값을 예측해보라 한다면, 31이라고 대답 할 것이다. 위의 모델도 마찬가지이다. 모델은 데이터와 답을 통애 학습하여, x가 10일 때의 값을 31과 근사하게 예측한다. 하지만 실행 결과 예측 값이 약 4.17로 우리가 기대한 값인 31과는 매우 차이가 큰 것을 알 수 있다. 그 이유는 학습이 충분하지 않기 때문이다. 코드의..
chapter 1 인공지능 딥러닝의 이해 - 2절 딥러닝 맛보기 - 4항 기존 방식의 함수 정의와 사용 고전적인 프로그래밍 방식으로 함수를 정의해 보겠다. 고전적인 프로그래밍에서는 정해진 규칙을 통해 함수를 정의한다. 이번 실습에서는 아래와 같은 규칙으로 함수를 정의해 보겠다. f(x) = 3x + 1 (x는 실수) f(x)에 10을 대입하면 위의 식에 따라 31이 나와야 한다. 실행 결과 실제로 31이 나온 것을 확인할 수 있다.
chapter 1 인공지능 딥러닝의 이해 - 2절 딥러닝 맛보기 - 2항 머신러닝은 무엇일까요? 머신러닝에서는 기계가 스스로 데이터와 답을 통해 규칙을 만든다. 고전적인 프로그래밍은 규칙을 통해 함수를 정의한다. 그리고 값을 함수에 입력하면, 규칙에 맞는 걸과 값이 나온다. 즉, 규칙과 입력 값을 통해 출력 값을 도출하는 방식이다. 반면에, 머신러닝에서는 데이터와 답을 입력하면, 그 결과로 규칙이 도출된다. 여기서 답은 라벨이라고 부른다. 그리고 머신러닝을 구현하는 인공 신경망 함수를 모델이라고 부른다. 규칙을 만들어낸 모델은 데이터를 입력했을 때, 만든 규칙을 이용해 답을 예측한다.
chapter 1 인공지능 딥러닝의 이해 - 2절 딥러닝 맛보기 - 1항 Hello 딥러닝 인공 신경망은 작동 규칙을 스스로 만들어낸다. 기존 프로그래밍에서는 명확한 규칙을 가진 함수를 정의하면서 프로그래밍 한다. 그러나 인공 신경망을 이용한 프로그래밍에서는 입력 값들과 출력 값들의 관계를 기반으로 인공 신경망 함수를 만든다. 그리고 이 인공 신경망 함수는 학습을 거치며 입력 값과 출력 값 간의 관계를 기반으로 만들어진 규칙을 스스로 만들어낸다. 따라서 우리는 우리가 명확한 규칙을 설명하기 힘든 작업을 머신러닝(machine learning, ML)을 통해 기계에게 시킬 수 있다.
chapter 1 인공지능 딥러닝의 이해 - 1절 인공 신경망의 이해 - 3항 인공 신경 살펴보기 1. 인공 신경의 구조 인공 신경망은 인공 신경으로 구성되어 있다. 그리고 인공 신경은 여러 개의 입력부와 하나의 처리부, 하나의 출력부로 이루어져 있다. 2. 인공 신경의 데이터 처리 방식 인공 신경은 세 가지 단계를 거쳐 데이터를 처리한다. 1. 각각의 입력 값이 가중치에 의해 커지거나 작아진다. 입력값마다 각각의 가중치(weight)를 적용해 입력값을 조정한다. 입력값이 작더라도 가중치가 크면 값이 커지고, 입력값이 크더라도 가중치가 작다면 값이 작아진다. 가중치는 강도(strength)라고도 불린다. 2. 모든 입력 신호들이 더해진다. 가중치에 의해 곱해진 입력 값들이 하나의 값으로 더해진다. 그리고 보정 값이 추가적으로 더해진다. 이 보정 값은 편향(bias)라고 불린다. 3. 신호를 활성화한다..
chapter 1 인공지능 딥러닝의 이해 - 1절 인공 신경망의 이해 - 2항 인공 신경망의 학습 방법 인공 신경망은 전통적인 알고리즘들과 달리 프로그래머의 의도대로 작업하도록 프로그램 되거나 구성될 수 없다. 인공 신경망은 하나의 일을 수행할 방법을 직접 학습해야 한다. 일반적으로 인공 신경망의 학습 방법에는 3가지 전략이 있다. 지도 학습 미리 알려진 결과들이 있는 충분히 많은 데이터가 있을 때 사용하는 방법이다. 입력 데이터를 처리한 뒤, 알려진 결과와 비교하고 인공 신경망을 수정하는 과정들을 반복하며 학습하는 방법이다. 비지도 학습 입력 값이 목표 값과 같을 때 사용하는 학습 방법이다. 즉, 입력 값을 그대로 기억해 내야 할 때 사용하는 학습방법이다. 강화학습 인공 신경망이 익숙하지 않은 환경에서 이익이 되는 동작을 취할 확률을 높이고, 손해가 되는 동작을 취할 확률을 낮춰야 할 때 사용하는 학습 ..
chapter 1 인공지능 딥러닝의 이해 - 1절 인공 신경망의 이해 - 1항 인공 신경망이란? 1. 인공 신경망의 개념 인공 신경망은 인간의 중앙 신경계로부터 영감을 받아 만들어졌다. 인공 신경망(artificial neural networks, ANN)은 커다란 망으로 함께 연결되어 있는 인공 신경을 기반으로 구성된다. 각각의 인공신경은 간단한 신호를 처리 할 수 있는 구조로 만들어져 있다. 2. 인공 신경망의 활용 분야 얼굴 확인하기 음성 인식하가 손 글씨 일기 문장 번역하기 게임 하기 자동차나 로봇 제어하기 3. 인공 신경망의 구조 인공 신경망은 입력층(input layer), 은닉층(hidden layer), 출력층(output layer)으로 구성된다. 심층 학습 신경망 심층 학습 신경망(deep learning neural network, DNN)은 은닉층이 2개 이상인 신경망이다. 이..