본문 바로가기
728x90
반응형
SMALL

AI-driven Methodology76

[ANN] 신경망 구현 단층 신경망 import numpy as np inputs = np.array([0.5, -0.3]) weights = np.array([0.4, 0.6]) bias = -0.5 y = sigmoid(np.dot(inputs, weights.T) + bias) print(y) 다층 신경망 inputs = [1.0, 0.5] # 1x2 행렬 w1 = np.array([[0.1, 0.2, 0.3], [0.2, 0.3, 0.4]]) # 2x3 행렬 b1 = np.array([0.2, 0.3, 0.4]) # 3개 노드 w2 = np.array([[0.1, 0.2], [0.3, 0.2], [0.3, 0.4]]) # 3x2행렬 b2 = np.array([0.1, 0.2]) # 2개 노드 w3 = np.array([.. 2022. 11. 17.
[ANN] 퍼셉트론 연산 퍼셉트론 연산 import numpy as np grade = 10 test = 20 # 1x2 input0 = np.array([grade, test]) # 2x2 w1 = np.array( [[0.5, 0.12], [0.3, 0.4]]) # 2x1 w2 = np.array([[0.4], [0.5]]) result_0 = np.dot(input0, w1) result_1 = np.dot(result_0, w2) print('result_0:', result_0) print('result_1:', result_1) result_0: [11. 9.2] result_1: [9.] step 함수 (기본 활성화 함수) def step(h): return np.array(h >= 0, dtype = "int") .. 2022. 11. 10.
[ANN] GRU으로 삼성전자 주가 예측 GRU으로 삼성전자 주가 예측 yahoo finance에서 데이터 다운로드 후 3일 (3MA), 5일 (5MA) 가격이평선 추가한다. import tensorflow as tf import numpy as np import pandas as pd import matplotlib.pyplot as plt from tensorflow.keras.models import Sequential from tensorflow.keras.layers import GRU, Dense, Dropout # yahoo finance로부터 데이터 다운로드 raw_df = pd.read_csv('./000000.KS_3MA_5MA.csv') raw_df.head() plt.title('SAMSUNG ELECTRONIC STCOK.. 2022. 10. 21.
[ANN] LSTM으로 삼성전자 주가 예측 LSTM으로 삼성전자 주가 예측 yahoo finance에서 데이터 다운로드 후 3일 (3MA), 5일 (5MA) 가격이평선 추가한다. import tensorflow as tf import numpy as np import pandas as pd import matplotlib.pyplot as plt from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense, Dropout # yahoo finance로부터 데이터 다운로드 raw_df = pd.read_csv('./000000.KS_3MA_5MA.csv') raw_df.head() plt.title('SAMSUNG ELECTRONIC STC.. 2022. 10. 21.
[ANN] SimpleRNN (2) 데이터 전처리 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt from tensorflow.keras.layers import SimpleRNN, LSTM, Dense from tensorflow.keras import Sequential # data 생성 x = np.arange(0, 100, 0.1) y = 0.5*np.sin(2*x) - np.cos(x/2.0) seq_data = y.reshape(-1,1) print(seq_data.shape) print(seq_data[:5]) (1000, 1) [[-1. ] [-0.89941559] [-0.80029499] [-0.70644984] [-0.62138853]].. 2022. 10. 21.
[ANN] SimpleRNN (1) SimpleRNN SimpleRNN 레이어는 가장 간단한 형태의 RNN 레이어이며 기본 구조는 다음과 같다. Xt-1, Xt, Xt+1은 입력데이터를 나타내고 Ht-1, Ht, Ht+1은 은닉층 개념의 SimpleRNN 레이어 출력값을 Yt-1, Yt, Yt+1은 출력층의 출력값을 나타낸다. 학습 대상의 가중치는 입력층과 은닉층 사이의 가중치 Wih, 시간 t에서의 은닉층과 시간 t+1에서의 은닉층 간의 가중치 Whh, 은닉층과 출력층 사이의 가중치 Who로 구성된다. 시간 t에서 은닉층 SimpleRNN 레이어 출력은 Ht = tanh(XtWih + Ht-1Whh)이다. 구조 시계열 데이터를 이용해서 미래 값을 예측하는 RNN 구조는 w, h 등을 설정하여 일정한 길이로 패턴을 잘라서 학습 데이터를 만.. 2022. 10. 19.
[ANN] LSTM (Long-Short Term Memory) LSTM (Long-Short Term Memory) 실제로 단순한 RNN은 장기적인 종속성 학습에서 문제를 겪는다. RNN은 일반적으로 역전파를 통해 훈련되며, 여기서 소실 (vanishing) 또는 폭주 (exploding)하는 기울기 문제에 직면할 수 있다. 이러한 문제는 신경망 가중치가 너무 작아지거나 너무 커지는 현상을 유발하기 때문에 장기적인 관계를 학습하기에는 효과적이지 않다. ​ Vanishing Gradient Problem을 극복하는 특수한 RNN 유형이 장단기 기억 (LSTM) 신경망이다. LSTM 신경망은 부가적인 게이트를 사용하여 은닉 셀의 어느 정보가 출력과 다음 은닉 상태까지 보내지는지를 제어한다. 이를 통해 신경망은 데이터의 장기적인 관계를 더 효과적으로 학습할 수 있다. L.. 2022. 10. 11.
[ANN] 심층 신경망 (Deep Neural Network) 심층 신경망 (Deep Neural Network) 심층 신경망은 MLP에서 은닉층의 개수를 증가시킨 것이다. 신경망은 깊이가 깊어질수록, 은닉층의 노드 수가 많으면 많을수록 계산이 복잡해진다. Dropout 신경망 모델의 과대적합을 예방하기 위한 정규화 기법으로, 학습 중에 무작위로 선택된 뉴런을 무시하는 방법이다. 탈락된 뉴런이 일시적으로 제거되고 모든 가중치 업데이트가 역방향 path에서 적용되지 않게 된다. 20~50% 정도를 dropout rate로 사용한다. 너무 낮은 값은 dropout 영향이 미비해지고, 너무 높은 값은 과소 적합 학습을 일으킨다. example from tensorflow import keras # 인공신경망 설계 model = keras.Sequential([ keras.. 2022. 10. 11.
[ANN] 다층 퍼셉트론 (Multi-Layer Perceptron) (2) 역전파 (Backpropagation) 오차를 하나의 계층에서 직전 계층으로, 즉 역으로 전파하는데 가중치를 이용한다. 오차 𝑒1은 나뉘어 전달될 때, 작은 가중치를 가지는 연결 노드보다 큰 가중치를 가지는 연결 노드에 더 많이 전달한다. 다층 계층에서 오차 역전파 출력 계층의 연결된 노드들의 가중치를 업데이트한다. 𝑒𝑜𝑢𝑡𝑝𝑢𝑡 : 출력 계층의 오차 𝑊ℎ𝑜 : 은닉 계층에서 출력 계층을 연결하는 가중치 은닉 계층의 노드의 출력 값과 관련된 오차를 입력 계층과 은닉 계층을 연결하는 가중치를 업데이트한다. 𝑒ℎ𝑖𝑑𝑑𝑒𝑛 : 은닉 계층의 노드의 출력 값과 관련된 오차 𝑊𝑖ℎ : 입력 계층에서 은닉 계층을 연결하는 가중치 중간 계층 : 존재하는 노드들의 오차가 명백하지 않다. 이전 계층의 노드로부터 오는 n개.. 2022. 10. 11.
[ANN] 다층 퍼셉트론 (Multi-Layer Perceptron) (1) 다층 퍼셉트론 (Multi-Layer Perceptron) 다층퍼셉트론은 입력층과 출력층 사이에 하나 이상의 중간층이 존재하는 신경망이다. 퍼셉트론 2개를 사용한 XOR 문제의 해결했다. 퍼셉트론 2개를 병렬로 결합하면, 원래 공간 𝐱=(𝑥1 , 𝑥2 )^T를 새로운 특징 공간 𝐳=(𝑧1 , 𝑧2 )^T로 변환한다. 그리고 새로운 특징 공간 𝐳에서는 선형 분리 가능하다. 퍼셉트론 1개를 순차 결합하고, 새로운 특징 공간 𝐳에서 선형 분리를 수행하는 퍼셉트론 ③을 순차 결합하면, (b)의 다층 퍼셉트론이 된다. 따라서, XOR 문제는 입력층과 출력층 사이에 은닉층을 두면 쉽게 풀 수 있다. 뉴런의 동작 모델화 뉴런을 여러 계층 (layer)에 걸쳐 위치시킨다. 각각의 뉴런은 직전 계층과 직후 계층에 있는 .. 2022. 10. 7.
728x90
반응형
LIST