def step_function(x):
    y = x > 0
    return y.astype(np.int32)

 

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-5.0, 5.0, 0.1)
y = step_function(x)
plt.plot(x, y)
plt.ylim(-0.1, 1.1)
plt.show()

 

 

 

def sigmoid(x):
    return 1 / (1+np.exp(-x))

 

x = np.arange(-5.0, 5.0, 0.1)
y = sigmoid(x)
plt.plot(x, y)
plt.ylim(-0.1, 1.1)
plt.show()

def relu(x):
    return np.maximum(0, x)

 

 

 

X = np.array([1, 0.5])
W1 = np.array([
    [0.1, 0.3, 0.5],
    [0.2, 0.4, 0.6]
])
B1 = np.array([0.1, 0.2, 0.3])

print(W1.shape)
print(X.shape)
print(B1.shape)

A1 = np.dot(X, W1) + B1
print(A1.shape)

 

Z1 = sigmoid(A1)
print(A1)
print(Z1)

 

 

def identity_function(x):
    return x

def init_network():
    network = {}
    network['W1'] = np.array([
        [0.1, 0.3, 0.5],
        [0.2, 0.4, 0.6]
    ])
    network['b1'] = np.array([0.1, 0.2, 0.3])
    network['W2'] = np.array([
        [0.1, 0.4], [0.2, 0.5], [0.3, 0.6]
    ])
    network['b2'] = np.array([0.1, 0.2])
    network['W3'] = np.array([
        [0.1, 0.3], [0.2, 0.4]
    ])
    network['b3'] = np.array([0.1, 0.2])
    return network

def forward(network, x):
    W1, W2, W3 = network['W1'], network['W2'], network['W3']
    b1, b2, b3 = network['b1'], network['b2'], network['b3']
    
    a1 = np.dot(x, W1) + b1
    z1 = sigmoid(a1)
    a2 = np.dot(z1,W2) + b2
    z2 = sigmoid(a2)
    a3 = np.dot(z2,W3) + b3
    y = identity_function(a3)
    return y

network = init_network()
x = np.array([1.0, 0.5])
y = forward(network, x)
print(y)

 

 

def softmax(a):
    C = np.max(a)
    exp_a = np.exp( a - C)
    sum_exp_a = np.sum(exp_a)
    y = exp_a / sum_exp_a
    return y

 

'딥러닝' 카테고리의 다른 글

밑딥1 - 1. 단순게이트  (0) 2024.06.17
def AND(x1, x2):
    w1, w2, theta = 0.5, 0.5, 0.7
    tmp = x1*w1 + x2*w2
    if tmp <= theta:
        return 0
    elif tmp > theta:
        return 1

print(AND(0,0))
print(AND(1,0))
print(AND(0,1))
print(AND(1,1))

 

 

import numpy as np
x = np.array([0, 1])
w = np.array([0.5, 0.5])
b = -0.8
print(w*x)
print(np.sum(w*x))
print(np.sum(w*x)+b)

 

 

def NAND(x1, x2):
    x = np.array([x1, x2])
    w = np.array([-0.5, -0.5])
    b = 0.7
    tmp = np.sum(w*x) + b
    if tmp <= 0:
        return 0
    else:
        return 1

def OR(x1, x2):
    x = np.array([x1, x2])
    w = np.array([0.5, 0.5])
    b = -0.2
    tmp = np.sum(w*x) + b
    if tmp <= 0:
        return 0
    else:
        return 1

 

 

def XOR(x1, x2):
    s1 = NAND(x1, x2)
    s2 = OR(x1, x2)
    y = AND(s1, s2)
    return y

print(XOR(0,0))
print(XOR(1,0))
print(XOR(0,1))
print(XOR(1,1))

 

'딥러닝' 카테고리의 다른 글

밑딥1 - 2.신경망  (0) 2024.06.17

오랜만에 본 책인 그림으로배우는 http & network

 

이거 보기전에 다른것도 짧게 몇개 보긴했지만

책 리뷰글 쓰기 귀찬아서 게으름피우다가

간만에 쓴다.

 

그래봣자 리뷰 글이라고 할만큼 

책을 열심히 본것도 아니고 중간에 대충 넘어간 부분이 대부분이라 쓸내용이 없긴한데

 

일단 책 제목에 베이직이라는 단어가 있지만

생각보다 깊이 있는 내용들을 그림으로 가능한 쉽게 표현하려고 노력한 책으로 보이는데

 

HTTP 프로토콜에 대한 왠만한 대부분 내용들이 들어가 있다.

 

물론 지금은 HTTP만 쓰는게 아니라 보안을 위한 HTTPS 프로토콜에 대한 내용도

보안쪽을 내가 잘아는건아니지만 빈틈없이 포함되어 있다.

 

내가 이 책을 보기전에 생각한건

간단하게 그림으로 배우는 서버, 웹서버 통신 책 같이 얕고 넓은 내용인줄 알았는데

 

생각보다 깊이있는 내용들을 그림으로 표현해서 알려주려고한게 

이 책의 특징이 아닌가 싶다.

 

오라일리에서 나온 HTTP 책 두꺼운거?에 비하면

정말 친절한 책이라 생각된다.

 

https://www.yes24.com/Product/Goods/15894097

 

그림으로 배우는 HTTP & Network - 예스24

이 책은 웹의 근간을 이루는 HTTP를 중심으로 하여 웹, 인터넷 데이터 통신 분야의 기초가 되는 내용들을 다루고 있다. 관련 분야를 배우고자 하는 독자들을 위해 만화 캐릭터와 일러스트를 활용

www.yes24.com

 

+ Recent posts