전체 글 85

[RL2] 신경망 네트워크를 이용한 MountainCar 해결

GYM 튜토리얼 & Model-Based 강화학습 강화학습을 공부하기 위해 제공되는 환경 라이브러리로 GYM이 있습니다. 해당 라이브러리를 사용하여 MountainCar문제를 풀어보겠습니다. 실습 환경 OpenAI Gym Gym은 OpenAI재단에서 강화학습을 학습하기 위해 만든 환경으로서, 강화학습의 표준 환경이라고 볼 수 있습니다. 강화학습 알고리즘들을 비교하고, 테스트를 해 볼 수 있는 학습 도구입니다. 해당 환경은 학습을 위한 용도로 사용되며, 강화학습을 실생활에 응용하고 적용하기 위해서는 환경 자체를 새로 설계하여야합니다. import gym Gym 홈페이지: https://gym.openai.com/ Gym Github: https://github.com/openai/gym Colab 실습환경..

카테고리 없음 2023.08.11

[RL1] 강화학습(Reinforcement Learning)이란?

강화학습(Reinforcement Learning) 강화학습이란? 강화(Reinforcement)는 시행착오(Trial and Error)를 통해 학습하는 방법 중 하나를 의미합니다. 이러한 강화를 바탕으로 강화학습은 실수와 보상을 통해 학습을 하여 목표를 찾아가는 알고리즘입니다. 기존의 신경망들이 라벨(정답)이 있는 데이터를 통해서 가중치와 편향을 학습하는 것과 비슷하게 보상(Reward)이라는 개념을 사용하여 가중치와 편향을 학습하는 것입니다. 목적은 최적의 행동양식 또는 정책을 학습하는 것입니다. 종류 Model-Based Algorithm 해당 알고리즘은 환경(Environment)에 대한 모든 설명(Description)을 알고 문제를 푸는 방법입니다. 핵심은 직접 행동을 하지 않고, 최적의 솔..

RNN(Recurrent Neural Network), LSTM, GRU

순환 신경망(RNN) 순환 신경망(Recurrent Neural Network)은 은닉 계층 안에 하나 이상의 순환 계층을 갖는 신경망을 의미합니다. 순환 신경망은 다른 네트워크들과 입력을 받는 방식에서 다릅니다. 순서가 있는 데이터에 주로 사용되며, 해당 데이터를 입력으로, 하나의 네트워크를 통해서 순서대로 출력을 얻습니다. 순서가 있는 데이터는 소리, 언어, 날씨, 주가 등의 데이터처럼 시간의 변화에 함께 변화하면서 그 영향을 받는 데이터를 의미합니다. 순환 계층 시계열 데이터 처리에 알맞게 고안된 퍼셉트론 계층입니다. 가중치와 편향을 각 시간대 데이터에 반복해서 사용합니다. 순환 벡터를 사용하여 정보를 전달합니다. RNN의 구조 RNN은 되먹임 구조를 가지고 있습니다. 레이어의 출력을 다시 입력으로..

CNN (Convolutional Neural Network)

컨볼루션 신경망(Convolutional Neural Network) CNN(Convolutional Neural Network)은 주로 이미지를 사용한 딥러닝 네트워크 방식에서 사용됩니다. 사실, 이미지 외에 음성과 텍스트, 시간 데이터에도 사용 가능합니다. CNN의 구성 분류를 위한 컨볼루션 신경망은 특징 추출을 하는 부분과 분류기 부분으로 나누어집니다. 특징 추출(Feature Extraction) 컨볼루션 레이어(Convolution Layer) + 풀링 레이어(Pooling Layer)를 반복하여 구성 CNN의 주요한 성질 중 하나는 특징표현 학습(Feature Representation Learning)입니다. 특징 추출 기법인 컨볼루션(Convolution, 합성곱) 연산을 사용하여 이미지의..

분류(Classification) 네트워크

딥러닝 네트워크를 이용한 분류 분류(Classification)는 회귀(Regression)와 함께 가장 기초적인 분석 방법입니다. 데이터가 어느 범주(Category)에 속하는지를 판단하는 방법입니다. 이항 분류(Binary Classification) 2개의 Label을 갖는 데이터가 들어왔을 때, 0 또는 1로 분류를 하는 것을 의미합니다. 활성화 함수는 주로 Sigmoid 함수를 사용합니다. Sigmoid 함수가 0 또는 1로 출력을 하기 때문입니다. Sigmoid 대신 Softmax를 사용하는 것이 가능합니다. 이항 분류 예제 Dataset https://www.kaggle.com/uciml/mushroom-classification 독버섯과 일반 버섯의 데이터세트입니다. class라는 항목을 ..

회귀(Regression) 네트워크 만들기

딥러닝 네트워크를 이용한 회귀 Squential 모델과 Dense 레이어를 사용한 간단한 네트워크를 형성하여 회귀 네트워크를 만들어보겠습니다. 앞선 포스팅에서 만든 XOR 연산 네트워크 또한 회귀 네트워크의 하나라고 할 수 있습니다. 일반적인 회귀 방법 일반적으로 numpy, tensorflow, sklearn 라이브러리를 사용한 회귀 방법이 있습니다. 이것은 머신러닝 (7) 포스팅에 정리하였습니다. Test 환경 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt x = 2 * np.random.rand(100, 1) y = 4 + 3 * x + np.random.randn(100, 1) x값의 범위는 0부터 2의 범위의..

AND, OR, XOR 연산 신경망 만들기

간단한 신경망 네트워크 만들기 실습 예제 이번 포스팅에서도 지난번 사용했던, sigmoid를 사용하겠습니다. import numpy as np def sigmoid(x): return 1/(1+np.exp(-x)) AND 연산 네트워크 AND연산은 프로그래밍 언어를 배울 때 한번 씩은 들어본 연산이라고 생각합니다. 아래와 같은 연산을 뜻합니다. 항상 참일 때만, 참을 결과로 출력하는 연산입니다. 이것을 numpy 배열로 나타내면 아래와 같이 선언합니다. x = np.array([[1, 1], [1, 0], [0, 1], [0, 0]]) y = np.array([[1], [0], [0], [0]]) 또한 가중치와 편향도 정규 분포를 가지는 난수로 초기화 해줍니다. 또한, 학습률은 0.1로 설정하였습니다. ..

텐서플로우 2.0 기초와 뉴런 만들기

텐서플로우란? 텐서플로우(Tensorflow)는 머신러닝을 위한 오픈소스 플랫폼으로, 딥러닝 과제를 수행하기위해 제공하는 라이브러리입니다. ML 모델을 개발하고 학습시키는 데 도움이 되는 핵심적인 오픈소스 라이브러리입니다. 현 시점 기준(20/02/06)으로, 세계에서 가장 많이 사용되는 딥러닝 프레임워크입니다. 구글에서 주도적으로 개발하는 플랫폼이며, 구글 코랩(Colab)을 이용하여 주피터 노트북기반 딥러닝 코드를 사용가능합니다. 2.0버전에서는 기존의 1버전보다 성능과 편의성을 확보하였습니다. API를 간소화하였고, 즉시 실행 모드(Eager Execution)을 기본값으로 사용합니다. 또한 기존 1버전에서 사용하던 session대신, function을 사용하여 그래프 연산이 가능하도록 수정하였습니..

System Design of Uber App – Uber System Architecture

It’s really easy to just tap a button on our mobile phone and get the cab available within a few minutes whenever and wherever we want. Uber/Ola/Lyft… using these applications and getting the hassle-free transportation service is really simple but is it also simple to build these gigantic applications which have hundreds of software engineers working on them for a decade…? definitely not. These ..