当前位置: 首页 > article >正文

✨机器学习笔记(五)—— 神经网络,前向传播,TensorFlow

Course2-Week1:
https://github.com/kaieye/2022-Machine-Learning-Specialization/tree/main/Advanced%20Learning%20Algorithms/week1

机器学习笔记(五)

  • 1️⃣神经网络(Neural Network)
  • 2️⃣前向传播(Forward propagation)
  • 3️⃣用 TensorFlow 搭建神经网络
  • 4️⃣徒手搭建神经网络

1️⃣神经网络(Neural Network)

🎈神经网络是模仿大脑的神经元之间传递的一个过程,如下图:

左图中, 神经网络模拟生物上神经元的传递,将数据输入神经元后将输出作为电信号传递给下一个神经元。右图中,展示了一个简单的神经元模型,即一个简单的神经网络,后一个神经元将前一个神经元的输出视为自己的输入,最终得出一个结果输出。

在这里插入图片描述

🎈那这种神经网络的结构有何作用呢?面向怎样的需求情况呢,首先对于一个最简单的分类逻辑回归问题(判断衣服是否畅销),可以用一个神经元来完成,将价格 p r i c e price price 视为这个神经元的输入,将 s i g m o i d sigmoid sigmoid 作为神经元的激活函数(用于输出结果的函数),最后输出衣服畅销的概率是多少,这是一个最简单的神经网络,也可以称为单层感知机

在这里插入图片描述

对于一个稍微复杂的问题,我们需要将价格、运费、营销、材质作为输入,过个一个有三个神经元的神经网络层,输出三个值(1个神经元输出一个值):负担能力、意识、感知质量,最后是通过这三个值来预测畅销的概率,这就是运用神经网络的典型案例。网络中的每一层都有名字,最开始作为输入数据的这层为输入层(input layer),最终输出结果的这层为输出层(output layer),由于我们在模型中只关心输入和输出,不是很关心中间的过程,所以中间的层次被称为隐藏层(hidden layer)

在这里插入图片描述

🎈Multiple hidden layers(multilayer perceptron 多层感知机)

在这里插入图片描述

🎈Face recognition

在这里插入图片描述

🎈Car classification

在这里插入图片描述


✨神经网络层的工作原理

对于: a j [ l ] = g ( w ⃗ j [ l ] ⋅ a ⃗ [ l − 1 ] + b j [ l ] ) 对于:a_j^{[l]}=g(\vec w_j^{[l]} \cdot \vec a^{[l-1]}+b_j^{[l]}) 对于:aj[l]=g(w j[l]a [l1]+bj[l])

  1. a j [ l ] a_j^{[l]} aj[l]— Activation value of layer l l l, unit(neuron) j j j ;
  2. g ( z ) g(z) g(z) — actibation function(sigmoid) ;
  3. w ⃗ j [ l ] , b j [ l ] \vec w_j^{[l]},b_j^{[l]} w j[l],bj[l] — Parameter w & b of layer l l l, unit j j j ;
  4. a ⃗ [ l − 1 ] \vec a^{[l-1]} a [l1] — output of layer l − 1 l-1 l1 (previous layer)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2️⃣前向传播(Forward propagation)

🎈从输入层开始,然后进行前向传播给隐藏层并计算隐藏层的激活项,然后继续前向传播并计算输出层的激活项得出预测结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Tensorflow Code

在这里插入图片描述

✨前向传播的代码实现

在这里插入图片描述

3️⃣用 TensorFlow 搭建神经网络

在这里插入图片描述

4️⃣徒手搭建神经网络

def my_dense(a_in, W, b, g):
    """
    Computes dense layer
    Args:
      a_in (ndarray (n, )) : Data, 1 example 
      W    (ndarray (n,j)) : Weight matrix, n features per unit, j units
      b    (ndarray (j, )) : bias vector, j units  
      g    activation function (e.g. sigmoid, relu..)
    Returns
      a_out (ndarray (j,))  : j units|
    """
    units = W.shape[1]
    a_out = np.zeros(units)
    for j in range(units):               
        w = W[:,j]                                    
        z = np.dot(w, a_in) + b[j]         
        a_out[j] = g(z)               
    return(a_out)



def my_sequential(x, W1, b1, W2, b2):
    a1 = my_dense(x,  W1, b1, sigmoid)
    a2 = my_dense(a1, W2, b2, sigmoid)
    return(a2)



def my_predict(X, W1, b1, W2, b2):
    m = X.shape[0]
    p = np.zeros((m,1))
    for i in range(m):
        p[i,0] = my_sequential(X[i], W1, b1, W2, b2)
    return(p)
    

http://www.kler.cn/news/322015.html

相关文章:

  • 2025校招内推-招联金融
  • UE虚幻引擎云渲染汽车动画的优势!
  • 智能密码、指纹锁语音芯片ic方案 可存放40s语音内容 NVD语音芯片
  • 进程(一万字学习笔记)
  • 用户体验分享 | YashanDB V23.2.3安装部署
  • iOS OC 底层原理之 category、load、initialize
  • Python之禅:编程哲学的精髓
  • 【沧海拾昧】C# .NET8 WinForms程序在主显示器125%/150%缩放下尺寸显示异常的解决办法
  • 如何使用ssm实现基于JavaWeb的个人健康信息管理系统
  • 学生党头戴式蓝牙耳机怎么选?平价学生党头戴式蓝牙耳机排行推荐
  • 侧边菜单的展开和折叠
  • 振动韧性与智能的双翼,让数智金融飞向未来之屿
  • uniapp监听滚动实现顶部透明度变化
  • uniapp js怎么根据map需要显示的点位,计算自适应的缩放scale
  • django drf to_internal_value
  • YOLOv8+注意力机制+PyQt5玉米病害检测系统完整资源集合
  • 微信小程序-WebSocket
  • git diff 命令
  • 【逐行注释】MATLAB的程序,对比EKF(扩展卡尔曼滤波)和PF(粒子滤波)的滤波效果,附下载链接
  • ruoyi源码解析学习 - 微服务版 - ruoyi-gateway
  • 【人工智能】多模态AI:如何通过融合文本、图像与音频重塑智能系统未来
  • Qt系统相关——QFile和QFileInfo
  • 笔记整理—内核!启动!—linux应用编程、网络编程部分(5)系统时间与信息
  • Django 依赖库管理
  • 【计网】从零开始掌握序列化 --- 基础知识储备与程序重构
  • Ubuntu24.04下安装Budgie桌面的注意事项
  • 【C++掌中宝】深入理解函数重载:概念、规则与应用
  • Map和Set,TreeMap和TreeSet,HashMap和HashSet
  • Docker安装和配置MySQL 5.7的完整指南
  • 【Unity与数据库01】开发者如何选择数据库