iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0

神經元與神經網路

  • 細胞核
    細胞核控制神經元的基本生命過程
    在類神經網路中,類似的功能由模型的參數(權重和偏差)控制,參數會通過訓練過程來調整
  • 軸突( Axon )
    軸突是用於傳遞信息的輸出通道
    在類神經網路中,輸出層類似於神經元的軸突,負責將網絡的輸出信息傳遞給外部
  • 樹突( Dendrites )
    樹突是用於接收來自其他神經元的信號,並將信號傳遞給細胞核
    在類神經網路中,輸入層類似於神經元的樹突,接收外部資料或特徵,並傳遞給網絡
  • 突觸( Synapse )
    神經元之間的通信透過突觸完成
    在類神經網路中,神經元之間的通信是通過權重( weight )來完成,每個突觸都有一個相應的權重,用權重調整信號的傳遞強度
    https://ithelp.ithome.com.tw/upload/images/20231003/20163317ZaRzkIHy67.png
    https://ithelp.ithome.com.tw/upload/images/20231003/20163317kcWY3Y6Y1i.png

a1 ~ an 為輸入向量的各個分量
w1 ~ wn 為神經元各個突觸的權重值( weight )
b 為偏置( bias )
f 為傳遞函數,通常為非線性函數
t 為神經元輸出

激勵函數

import numpy as np
# 定義一個簡單的神經元模型
def neuron(input_data, weights, activation_function):
    weighted_sum = np.dot(input_data, weights)
    output = activation_function(weighted_sum)
    return output

# 定義不同的激勵函數
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

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

def tanh(x):
    return np.tanh(x)

# 輸入資料
input_data = np.array([2, 3, 4])

# 隨機初始化權重
weights = np.random.randn(3)

# 使用不同的激勵函數觀察輸出
output_sigmoid = neuron(input_data, weights, sigmoid)
output_relu = neuron(input_data, weights, relu)
output_tanh = neuron(input_data, weights, tanh)

print("Output with Sigmoid:", output_sigmoid)
print("Output with ReLU:", output_relu)
print("Output with tanh:", output_tanh)

圖片來源 & 資料來源

https://methycobal.hk/%E5%88%86%E8%BE%A8%E7%A5%9E%E7%B6%93%E7%97%9B%E7%97%87/
https://zh.wikipedia.org/zh-tw/%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C


上一篇
深入探險~深度學習的基本概念
下一篇
重啟旅程~半監督式學習
系列文
機器學習新手行,相信你也行!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言