「吴恩达」机器学习笔记 - 深度学习神经网络

发布时间:2024年01月13日

一、神经元和大脑

1. 概述

  • 起源:

    研究可以模拟大脑的算法。

  • 应用:

    语音、视觉、文本 (自然语言) ......

(1) 大脑神经元与算法

:当下重点已不在生物层面,而是在利用工程原理构建更有效的算法。

(2) 深度学习的起飞

2. 需求预测

(1) 神经网络的符号与描述

(2) 不需要自己手动自己设计特征

神经网络将自己决定它将在隐藏层使用哪些数据

3. 例子:图像识别

随着层数增加,窗口大小在增大。

二、工作原理

1. 神经网络的层

【注】上标表示所在层数

  • 第一层???????

  • 第二层

  • 预测结果 (可省略)???????

  • 每一层输入一组数字向量,并对应一组逻辑回归单元, 计算出另一组数字向量并传到另一层。直到得到最终的输出。

2. 计算激活

第 l 层激活的一般形式:

( g 也称为激活函数 —— 输出激活值的函数)

三、前向传播算法

1. 算法推导

以区分手写数字 0 和 1 为例

  • 前向传播:从左向右传播神经元的激活
    1. 计算第一层激活

    2. 计算第二层激活

    3. 计算最后一层激活 (输出)

    4. (可选)???????

    隐藏层的单元数量随着越来越接近输出层而在减少

2. 使用 TensorFlow 实现

1. 从前往后构建层

(1) 以烤咖啡豆为例 (输入为温度、时间长度):

(2)?以识别手写数字为例:???????

2. TensorFlow 和 numpy 中的数据表示

由于历史原因,tensorflow 和 numpy 的数据表示方式冲突 —— t 为矩阵,n 为一维数组。

(1) 在numpy中的数据表示:

线性回归和逻辑回归通常用一维向量来表示数据,TensorFlow通常使用矩阵来表示。

(2) 以之前的前向传播过程为例

tf.Tensor() 是由 TensorFlow 团队创建的数据类型,用于存储和执行矩阵上的运算 —— 即矩阵的一种表示方式

a1.numpy() 可将 tensor 转为 numpy 数组

3. 构建一个深度神经网络

Sequential() 函数可将不同层连接起来

model.fit(x,y) 表示在数据 x 和 y 上训练模型

model.predict(x_new) 表示在新数据上,用该神经网络模型进行推理

代码的深入理解见下一篇博客

2. 使用 python 和 numpy 实现

1. 硬实现

以前面提到的 烘焙咖啡 为例:

???????

  1. 计算 a1 :

  2. 计算 a2 :

2. 一般实现 (简化版)

(该部分理解即可 —— 用于调试模型代码)

????????条件:???????

  • dense() 实现神经网络的单层:

    输入:上一层的激活、神经元参数 w 和 b

  • 输出:当前层的激活

  • def dense(a_in, W, b, g) :
     ?units = W.shape[1]        #3
      a_out = np.zeros (units)
      for j in range(units):    #0,1,2
        W= W[:,j]
        z = np.dot(w,a_in) + b[j] 
        a_out [j] = g(z)
      return a_out
  • sequential() 将各层串联起来:

    def sequential(x):
      a1 = dense(x, W1, b1)
      a2 = dense(a1, W2, b2)
      a3 = dense(a2, W3, b3)
      a4 = dense(a3, W4, b4)
      f_x = a4
      return f_x

【注】python 中大写字母代表矩阵,小写字母指向量和标量

3. 使用向量化使得算法更高效

X = np.array([[200, 17])
W = np.array([[1, -3, 5],
              [-2, 4, -6]])
B = np.array([[-1, 1, 2]])
?
def dense(A_in, W, B) :
  Z = np.matmul(A_in, W) + B
  A_out = g(z)
return A_out

四、神经网络与通用人工智能 AGI

1. AI 包涵的两个部分

  1. (artificial narrow intelligence) ANI - 狭义人工智能

    E.g.: smart speaker, self-driving car, web search, Al in farming and factories....

  2. (artificial general intelligence) AGI - 广义人工智能

    做任何人类可以做的事情

2. 待解决的问题

  1. 模拟的神经元十分简单,与生物神经元有大的差距

  2. 我们至今仍未知道大脑如何工作

3. 未来的希望

动物实验:仅给定输入,小部分的组织边可学会听、说、写(如感觉细胞可学会看)

也许一种算法给定数据输入,就可以学会处理

文章来源:https://blog.csdn.net/qq_52063383/article/details/135562335
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。