728x90

deep learning 16

[Deep Learning] ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง(RNN)

RNN ๊ตฌํ˜„ RNN ๊ณ„์ธต ๊ตฌํ˜„ import numpy as np class RNN: def __init__(self, Wx, Wh, b): self.params = [Wx, Wh, b] self.grads = [np.zeros_like(Wx), np.zeros_like(Wh), np.zeros_like(b)] self.cache = None def forward(self, x, h_prev): Wx, Wh, b = self.params t = np.matmul(h_prev, Wh) + np.matmul(x, Wx) + b h_next = np.tanh(t) self.cache = (x, h_prev, h_next) return h_next def backward(self, dh_next): Wx, Wh,..

Deep Learning 2023.01.08

[Deep Learning] ๋ชจ๋ธ ์„ค๊ณ„ํ•˜๊ธฐ

๊ธฐ๋ณธ ์˜ˆ์ œ๋กœ ๋ชจ๋ธ ์„ค๊ณ„ ๊ณผ์ • ์„ค๋ช… ํ์•” ์ˆ˜์ˆ  ํ™˜์ž์˜ ์ƒ์กด์œจ ์˜ˆ์ธกํ•˜๊ธฐ # ๋”ฅ๋Ÿฌ๋‹์„ ๊ตฌ๋™ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ผ€๋ผ์Šค ํ•จ์ˆ˜ ํ˜ธ์ถœ from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense # ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ถˆ๋Ÿฌ์˜ด import numpy as np import tensorflow as tf import pandas as pd # ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ์„ค์ •ํ•˜๋Š” ๋ถ€๋ถ„ np.random.seed(3) tf.random.set_seed(3) # ์ค€๋น„๋œ ์ˆ˜์ˆ  ํ™˜์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ด Data_set = np.loadtxt('/content/drive/MyDrive/colab/deep_learning_basi..

Deep Learning 2022.12.30

[Deep Learning] ํ”„๋ ˆ์ž„์›Œํฌ ํ™•์žฅ ์ฝ”๋“œ ๊ตฌํ˜„

์ด์ „ deep learning ํด๋ž˜์Šค ์ฝ”๋“œ ๊ตฌํ˜„๊ณผ ์ด์–ด์ง€๋Š” ๋‚ด์šฉ์ด๋ฏ€๋กœ, ์ด์ „ ๊ธ€ ๋จผ์ € ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. https://heejins.tistory.com/36 float: # ๊ฐ ํ–‰(๊ด€์ฐฐ์— ํ•ด๋‹น)์— softmax ํ•จ์ˆ˜ ์ ์šฉ softmax_preds = softmax(self.prediction, axis = 1) # ์†์‹ค๊ฐ’์ด ๋ถˆ์•ˆ์ •ํ•ด์ง€๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด softmax ํ•จ์ˆ˜์˜ ์ถœ๋ ฅ๊ฐ’ ๋ฒ”์œ„๋ฅผ ์ œํ•œ self.softmax_preds = np.clip(softmax_preds, self.eps, 1 - self.eps) # ์‹ค์ œ ์†์‹ค๊ฐ’ ๊ณ„์‚ฐ ์ˆ˜ํ–‰ softmax_cross_entropy_loss = ( -1.0 * self.target * np.log(self.softmax_preds) - (1.0 - s..

Deep Learning 2022.11.24

[Deep Learning] ๋”ฅ๋Ÿฌ๋‹ ํด๋ž˜์Šค ์ฝ”๋“œ ๊ตฌํ˜„(์—ฐ์‚ฐ, layer, neuralnetwork, ๋ฐฐ์น˜ํ•™์Šต, optimizer)

import numpy as np from numpy import ndarray from typing import * def assert_same_shape(array: ndarray, array_grad: ndarray): assert array.shape == array_grad.shape, \ f""" ๋‘ ndarray์˜ ๋ชจ์–‘์ด ๊ฐ™์•„์•ผ ํ•˜๋Š”๋ฐ, ์ฒซ ๋ฒˆ์งธ ndarray์˜ ๋ชจ์–‘์€ {tuple(array_grad.shape)}์ด๊ณ , ๋‘ ๋ฒˆ์งธ ndarray์˜ ๋ชจ์–‘์€ {typle(array.shape)}์ด๋‹ค. """ return None - ์‹ ๊ฒฝ๋ง ๊ตฌ์„ฑ ์š”์†Œ: ์—ฐ์‚ฐ Operation ํด๋ž˜์Šค class Operation(object): """ ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ์˜ ์—ฐ์‚ฐ ์—ญํ• ์„ ํ•˜๋Š” ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค """ def __in..

Deep Learning 2022.11.23

[Deep Learning] ์˜ค์ฐจ ์ˆ˜์ •ํ•˜๊ธฐ: ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•, ํŽธ๋ฏธ๋ถ„ ์ฝ”๋“œ ๊ตฌํ˜„

๊ธฐ์šธ๊ธฐ a๋ฅผ ๋„ˆ๋ฌด ํฌ๊ฒŒ ์žก๊ฑฐ๋‚˜ ๋„ˆ๋ฌด ์ž‘๊ฒŒ ์žก์œผ๋ฉด ์˜ค์ฐจ๊ฐ€ ์ปค์ง. ์˜ค์ฐจ์™€ ๊ธฐ์šธ๊ธฐ ์‚ฌ์ด์—๋Š” ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ์žˆ์Œ. ์˜ค์ฐจ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ์ ์€ ๊ธฐ์šธ๊ธฐ a๊ฐ€ m์— ์œ„์น˜ํ•ด ์žˆ์„๋•Œ ์ด๋ฏ€๋กœ, m์œผ๋กœ ์ด๋™์‹œํ‚ค๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•จ. ๋ฏธ๋ถ„ ๊ธฐ์šธ๊ธฐ๋ฅผ ์ด์šฉํ•œ ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•(gradient descent)๋ฅผ ํ†ตํ•ด ์˜ค์ฐจ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ฐ€์žฅ ์ž‘์€ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™์‹œ์ผœ์•ผํ•จ. ์ตœ์†Ÿ๊ฐ’ m์—์„œ์˜ ์ˆœ๊ฐ„ ๊ธฐ์šธ๊ธฐ๋Š” x์ถ•๊ณผ ํ‰ํ–‰ํ•œ ์„ , ์ฆ‰ ๊ธฐ์šธ๊ธฐ๊ฐ€ 0์ž„. - '๋ฏธ๋ถ„๊ฐ’์ด 0์ธ ์ง€์ '์„ ์ฐพ์•„ ์˜ค์ฐจ๋ฅผ ๊ฐ€์žฅ ์ ๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•จ. aโ‚์—์„œ ๋ฏธ๋ถ„์„ ๊ตฌํ•œ๋‹ค. ๊ตฌํ•ด์ง„ ๊ธฐ์šธ๊ธฐ์˜ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ(๊ธฐ์šธ๊ธฐ๊ฐ€ +๋ฉด ์Œ์˜ ๋ฐฉํ–ฅ, -๋ฉด ์–‘์˜ ๋ฐฉํ–ฅ)์œผ๋กœ ์–ผ๋งˆ๊ฐ„ ์ด๋™์‹œํ‚จ aโ‚‚์—์„œ ๋ฏธ๋ถ„์„ ๊ตฌํ•œ๋‹ค. ์œ„์—์„œ ๊ตฌํ•œ ๋ฏธ๋ถ„ ๊ฐ’์ด 0์ด ์•„๋‹ˆ๋ฉด ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•์€ ์ด๋ ‡๊ฒŒ ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ธฐ์šธ๊ธฐ a๋ฅผ ๋ณ€ํ™”์‹œ์ผœ์„œ..

Deep Learning 2022.11.22

[Deep Learning] learning rate decay, learning rate scheduler

Learning Rate Decay ๊ธฐ์กด์˜ learning rate๊ฐ€ ๋†’์€ ๊ฒฝ์šฐ loss ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ๋‚ด๋ฆด ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ์˜ค์ฐจ๊ฐ€ 0์ธ ์ง€์ ์„ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ๊ณ , ๋‚ฎ์€ ๊ฒฝ์šฐ๋Š” ์ตœ์ ์˜ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋„ˆ๋ฌด ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ •์ ์ธ learning rate๋กœ ํ•™์Šต์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, epoch๋งˆ๋‹ค ๋™์ ์œผ๋กœ learning rate๋ฅผ ๋ณ€ํ™”์‹œ์ผœ ์ตœ์ ์˜ ํ•™์Šต์„ ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. tf.keras.optimizers.schedules.CosineDecay tf.keras.optimizers.schedules.CosineDecay( initial_learning_rate, decay_steps, alpha=0.0, name=None ) initial_learning_rate: ์ดˆ๊ธฐ lr decay_ste..

[Deep Learning]ํผ์…‰ํŠธ๋ก (Perceptron)

์‹ ๊ฒฝ๋ง์„ ์ด๋ฃจ๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋ณธ ๋‹จ์œ„: ํผ์…‰ํŠธ๋ก (perceptron) ํผ์…‰ํŠธ๋ก : ์ž…๋ ฅ ๊ฐ’๊ณผ ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์ถœ๋ ฅ ๊ฐ’์„ ๋‹ค์Œ์œผ๋กœ ๋„˜๊ธฐ๋Š” ๊ฐ€์žฅ ์ž‘์€ ์‹ ๊ฒฝ๋ง ๋‹จ์œ„ ๊ฐ€์ค‘์น˜, ๊ฐ€์ค‘ํ•ฉ ๋ฐ”์ด์–ด์Šค, ํ™œ์„ฑํ™” ํ•จ์ˆ˜ y = ωx + b(ω๋Š” ๊ฐ€์ค‘์น˜, b๋Š” ๋ฐ”์ด์–ด์Šค) ๊ฐ€์ค‘ํ•ฉ(weighted sum): ์ž…๋ ฅ๊ฐ’(x)๊ณผ ๊ฐ€์ค‘์น˜(ω)์˜ ๊ณฒ์„ ๋ชจ๋‘ ๋”ํ•œ ๋‹ค์Œ ๊ฑฐ๊ธฐ์— ๋ฐ”์ด์–ด์Šค(b)๋ฅผ ๋”ํ•œ ๊ฐ’ ํ™œ์„ฑํ™”ํ•จ์ˆ˜(activation function): ๊ฐ€์ค‘ํ•ฉ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋†“๊ณ  1 ๋˜๋Š” 0์„ ํŒ๋‹จํ•˜๋Š” ํ•จ์ˆ˜ XOR ๋ฌธ์ œ(exclusive XOR) AND: xโ‚์™€ xโ‚‚ ๋‘˜ ๋‹ค 1์ผ ๋•Œ ๊ฒฐ๊ณผ๊ฐ’์ด 1๋กœ ์ถœ๋ ฅ OR: ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ 1์ด๋ฉด 1๋กœ ์ถœ๋ ฅ XOR: ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ 1์ผ ๋•Œ 1๋กœ ์ถœ๋ ฅ ๋‹ค์ธต ํผ์…‰ํŠธ๋ก  XOR ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ๊ฐœ์˜ ํผ์…‰ํŠธ..

Deep Learning 2022.11.16

[Deep Learning]overfitting, drop out, hyper-parameter ์ตœ์ ํ™”

๋ฐ”๋ฅธ ํ•™์Šต์„ ์œ„ํ•ด ๊ธฐ๊ณ„ ํ•™์Šต์—์„œ๋Š” ์˜ค๋ฒ„ํ”ผํŒ…์ด ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์ผ์ด ๋งŽ์Œ. ์˜ค๋ฒ„ํ”ผํŒ…์ด๋ž€ ์‹ ๊ฒฝ๋ง์ด ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์—๋งŒ ์ง€๋‚˜์น˜๊ฒŒ ์ ์‘๋˜์–ด ๊ทธ ์™ธ์˜ ๋ฐ์ดํ„ฐ์—๋Š” ์ œ๋Œ€๋กœ ๋Œ€์‘๋˜์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ๋ฅผ ๋งํ•จ. ์˜ค๋ฒ„ํ”ผํŒ…์€ ์ฃผ๋กœ ๋‹ค์Œ์˜ ๋‘ ๊ฒฝ์šฐ์— ์ผ์–ด๋‚จ. 1. ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋งŽ๊ณ  ํ‘œํ˜„๋ ฅ์ด ๋†’์€ ๋ชจ๋ธ 2. ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์Œ # ์˜ค๋ฒ„ํ”ผํŒ… ๊ฒฐ๊ณผ import os import sys sys.path.append(os.pardir) import numpy as np import matplotlib.pyplot as plt from mnist import load_mnist from common_multi_layer_net import MultiLayerNet from common_optimizer import SGD (x_train, t_tra..

Deep Learning 2022.11.13

[Deep Learning]๋ฐฐ์น˜ ์ •๊ทœํ™”(Batch Normalization)

๋ฐฐ์น˜ ์ •๊ทœํ™” ๋ฐฐ์น˜ ์ •๊ทœํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•™์Šต์„ ๋นจ๋ฆฌ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.(ํ•™์Šต ์†๋„ ๊ฐœ์„ ) ์ดˆ๊นƒ๊ฐ’์— ํฌ๊ฒŒ ์˜์กดํ•˜์ง€ ์•Š๋Š”๋‹ค.(๊ณจ์น˜ ์•„ํ”ˆ ์ดˆ๊นƒ๊ฐ’ ์„ ํƒ ์žฅ์• ์—ฌ ์•ˆ๋…•!) ์˜ค๋ฒ„ํ”ผํŒ…์„ ์–ต์ œํ•œ๋‹ค.(๋“œ๋ก ์•„์›ƒ ๋“ฑ์˜ ํ•„์š”์„ฑ ๊ฐ์†Œ) [๋ฐฐ์น˜ ์ •๊ทœํ™”๋ฅผ ์‚ฌ์šฉํ•œ ์‹ ๊ฒฝ๋ง์˜ ์˜ˆ] ๋ฐฐ์น˜ ์ •๊ทœํ™”๋Š” ํ•™์Šต ์‹œ ๋ฏธ๋‹ˆ๋ฐฐ์น˜๋ฅผ ๋‹จ์œ„๋กœ ์ •๊ทœํ™”ํ•จ. ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” ๋ฐ์ดํ„ฐ ๋ถ„ํฌ๊ฐ€ ํ‰๊ท ์ด 0, ๋ถ„์‚ฐ์ด 1์ด ๋˜๋„๋ก ์ •๊ทœํ™”ํ•จ. [๋ฐฐ์น˜ ์ •๊ทœํ™” ์ˆ˜์‹] ๋ฐฐ์น˜ ์ •๊ทœํ™” ๊ณ„์ธต๋งˆ๋‹ค ์ด ์ •๊ทœํ™”๋œ ๋ฐ์ดํ„ฐ์— ๊ณ ์œ ํ•œ ํ™•๋Œ€์™€ ์ด๋™ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•จ. ์ˆ˜์‹์œผ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Œ. ์ด ์‹์—์„œ γ๊ฐ€ ํ™•๋Œ€๋ฅผ, β๊ฐ€ ์ด๋™์„ ๋‹ด๋‹นํ•จ. ๋‘ ๊ฐ’์€ ์ฒ˜์Œ์—๋Š” γ=1, β=0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ , ํ•™์Šตํ•˜๋ฉด์„œ ์ ํ•ฉํ•œ ๊ฐ’์œผ๋กœ ์กฐ์ •ํ•ด๊ฐ. ์ด๊ฒƒ์ด ๋ฐฐ์น˜ ์ •๊ทœํ™”์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ฉฐ, ์‹ ๊ฒฝ๋ง์—์„œ ์ˆœ์ „ํŒŒ ๋•Œ ์ ์šฉ๋จ. ๊ณ„์‚ฐ ๊ทธ๋ž˜ํ”„๋Š” ์•„๋ž˜์™€ ๊ฐ™์Œ...

Deep Learning 2022.11.13

[Deep Learning] ๊ฐ€์ค‘์น˜์˜ ์ดˆ๊นƒ๊ฐ’

๊ฐ€์ค‘์น˜์˜ ์ดˆ๊นƒ๊ฐ’ ์‹ ๊ฒฝ๋ง ํ•™์Šต์—์„œ ํŠนํžˆ ์ค‘์š”ํ•œ ๊ฒƒ์ด ๊ฐ€์ค‘์น˜์˜ ์ดˆ๊นƒ๊ฐ’์ž„. ๊ฐ€์ค‘์น˜์˜ ์ดˆ๊นƒ๊ฐ’์„ ๋ฌด์—‡์œผ๋กœ ์„ค์ •ํ•˜๋Š๋ƒ๊ฐ€ ์‹ ๊ฒฝ๋ง ํ•™์Šต์˜ ์„ฑํŒจ๊ฐ€ ๊ฐ€๋ฅด๋Š” ์ผ์ด ์‹ค์ œ๋กœ๋„ ์ž์ฃผ ์žˆ์Œ. ์ดˆ๊นƒ๊ฐ’์„ 0์œผ๋กœ ํ•˜๋ฉด? ์˜ค๋ฒ„ํ”ผํŒ…์„ ์–ต์ œํ•ด ๋ฒ”์šฉ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ํ…Œํฌ๋‹‰ : ๊ฐ€์ค‘์น˜ ๊ฐ์†Œ ๊ธฐ๋ฒ• ๊ฐ€์ค‘์น˜ ๊ฐ์†Œ๋Š” ๊ฐ€์ค‘์น˜ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ์ž‘์•„์ง€๋„๋ก ํ•™์Šตํ•˜๋Š” ๋ฐฉ๋ฒ•. ๊ฐ€์ค‘์น˜ ๊ฐ’์„ ์ž‘๊ฒŒ ํ•˜์—ฌ ์˜ค๋ฒ„ํ”ผํŒ…์ด ์ผ์–ด๋‚˜์ง€ ์•Š๊ฒŒ ํ•จ. ๊ฐ€์ค‘์น˜์˜ ์ดˆ๊นƒ๊ฐ’์„ ์ตœ๋Œ€ํ•œ ์ž‘๊ฒŒ ๋งŒ๋“ค๋ฉด ๊ฐ€์ค‘์น˜๋ฅผ ์ž‘๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ. ๊ทธ๋Ÿฌ๋‚˜ ์ดˆ๊นƒ๊ฐ’์„ 0์œผ๋กœ ํ•˜๋ฉด ํ•™์Šต์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ด๋ค„์ง€์ง€ ์•Š์Œ. ์ดˆ๊นƒ๊ฐ’์ด 0์ด ๋˜๋ฉด ์˜ค์ฐจ ์—ญ์ „ํŒŒ๋ฒ•์—์„œ ๋ชจ๋“  ๊ฐ€์ค‘์น˜์˜ ๊ฐ’์ด ๋˜‘๊ฐ™์ด ๊ฐฑ์‹ ๋จ. ์€๋‹‰์ธต์˜ ํ™œ์„ฑํ™”๊ฐ’ ๋ถ„ํฌ ์€๋‹‰์ธต์˜ ํ™œ์„ฑํ™”๊ฐ’(ํ™œ์„ฑํ™” ํ•จ์ˆ˜์˜ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ)์˜ ๋ถ„ํฌ๋ฅผ ๊ด€์ฐฐํ•˜๋ฉด ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ. # ์€๋‹‰์ธต ํ™œ์„ฑํ™” ๊ฐ’..

Deep Learning 2022.11.13
728x90