1[2]

  • 大写字母表示矩阵(二维及以上数组),小写字母表示向量(一维数组)或标量。
  •   还是“烤咖啡豆”问题。下图优化过程如下

    1. 图2-1-10:给出了对每个神经元的硬编码
    2. 图2-1-11:将每一层神经元计算封装一个 Dense(a_in,w,b,g)函数,再将所有层封装一个网络 sequential()
    3. 图2-1-12:使用矩阵运算优化 Dense()函数,使整个神经网络运行效率大大提高
    图2-1-10 “烤咖啡豆”问题-每个神经元计算
    图2-1-11 “烤咖啡豆”问题-封装层、封装整个网络
    图2-1-12 “烤咖啡豆”问题-将for循环改成矩阵乘法

    图2-1-12中:

      最后想再强调一下“矢量化”的好处。神经网络的规模之所以可以越来越大,得益于“矢量化”,这保证神经网络可以使用矩阵运算高效地部署。这是因为并行计算硬件比如GPU或者强大的CPU,非常擅长做非常大的矩阵运算

    4.4 代码实现手写数字识别

    现在回到手写数字识别问题,显然代码如下

    # 手写数字识别-代码整合
    # 定义训练
    x = np.array([[0..., 245, ..., 17],   # 1的训练图片
                  [0..., 200, ..., 184])  # 0的训练图片
    y = np.array([1,0])
    
    # 定义神经网络
    layer_1 = Dense(units=25, activation='sigmoid')  # 定义隐藏层1
    layer_2 = Dense(units=15, activation='sigmoid')  # 定义隐藏层2
    layer_3 = Dense(units=1,  activation='sigmoid')  # 定义输出
    model = Sequential([layer_1, layer_2, layer_3])  # 连接三层
    ###################也可以将上述四行合并####################
    # model = Sequential([
    #         Dense(units=25, activation='sigmoid'),  # 隐藏层1
    #         Dense(units=15, activation='sigmoid'),  # 隐藏层2
    #         Dense(units=1,  activation='sigmoid')]) # 输出层
    #########################################################
    
    # 编译并训练网络
    model.compile(...)  # 编译整个神经网络,下周具体介绍
    model.fit(x,y)      # 训练数据集,下周具体介绍
    
    # 预测并判决
    a_last = model.predict(x_new)
    if a_last >= 0.5:
        yhat = 1
    else:
        yhat = 0
    

    本节 Quiz

    1. For the the following code, will this code define a neural network with how many layers?
      Answer: 4
    model = Sequential([
    Dense(units=25, activation="sigmoid"),
    Dense(units=15, activation="sigmoid"),
    Dense(units=10, activation="sigmoid"),
    Dense(units=1, activation="sigmoid")])
    
    1. How do you define the second layer of a neural network that has 4 neurons and a sigmoid activation?
      × Dense(units=[4], activation=['sigmoid'])
      × Dense(layer=2, units=4, activation = *sigmoid')
      Dense(units=4, activation='sigmoid)
      × Dense(units=4)

    2. If the input features are temperature (in Celsius) and duration (in minutes), how do you write the code for the first feature vector x [200.0, 17.0]?
      × x = np.array([[200.0], [17.0])
      x = np.array([[200.0, 17.0]])
      × x = np.array([[200.0 + 17.0]])
      × x = np.array([['200.0', '17.0'])

    本节 Quiz

    1. According to the lecture, how do you calculate the activation of the third neuron in the first layer using NumPy?
    z1_3 = np.dot(w1_3, x) + b
    a1_3 = sigmoid(z1_3)
    z1_3 = w1_3*x + b
    a1_3 = sigmoid(z1_3)          ×
    
    layer_1 = Dense(units=3, activation='sigmoid')
    a_1 = layer_1(x)              ×
    
    1. According to the lecture, when coding up the numpy array W, where would you place the w parameters for each neuron?
      × In the rows of W.
      √ In the columns of W.

    2. For the code above in the “dense” function that defines a single layer of neurons, how many times does the code go through the “for loop”? Note that W has 2 rows and 3 columns.
      × 2 times
      × 6 times
      √ 3 times
      × 5 times

    5. AGI漫谈

      最后一节放松一下,来谈谈“AGI(Artifical General Intelligence, 通用人工智能)”。老师一直梦想着构建一个和人一样聪明的AI系统,这也是全世界人工智能领域的愿景,但是前路漫漫,不知道几十年、上百年能否实现。不过,如今AGI的目标构建一个“和人一样聪明的AI”,这让人兴奋但同时又有很多不切实际的炒作,比如《终结者》系列电影中的“天网”要灭绝人类,这引起一部分人对于AI的恐慌。但其实AI主要包括两方面完全不一样的内容

    1. ANI(Artifical Narrow Intelligence, 狭义人工智能):一次只做一件事的AI。比如智能扬声器、自动驾驶汽车网络搜索用于特定农场工厂的AI等。过去几年间,ANI取得了巨大的进步并带动了巨大的社会经济效益,常见生活的方方面面
    2. AGI(Artifical General Intelligence, 通用人工智能):可以人类一样做任何事的AI。

    总结:ANI的成功带动了AI的发展,但是很难说推动了AGI的进步。

    并且,即使从“模拟人脑”的角度来看,要想实现真正的AGI依旧非常困难,主要有两个原因

    1. 目前的神经元模型非常简单,实际上人脑神经元工作机制复杂得多。
    2. 医学角度来说,我们也不完全了解人脑如何工作的。

    总结老师认为仅通过模拟大脑神经元”的方式,就实现了AGI,是非常困难的。
    注:这大概也是现在改称“深度学习”的原因

      虽然不用恐慌,但是我们没有实现AGI的可能了吗?也不是,比如下面的几个实验显示出,人类大脑的某个区域,即使是非常小的一块区域,都具有惊人的适应性、可塑性:

    图2-1-13 大脑的可塑性非常强
    1. 使用“听觉皮层”看:将大脑的“听觉皮层”和原有的神经切断,再连接图像信号,那么一段时间后,该区域皮层就“学会了看”。用于感受触觉的“体感皮层”也是同理。
    2. 使用舌头看。头上安装摄像机,并将其拍摄到的灰度映射到舌头上的电压矩阵。给盲人带上学习一段时间,盲人就可以“看见”物体
    3. 人体声纳。训练人类发出“哒哒声”(类似于弹舌),并观察声音是如何环境反射的。经过一段时间的训练,有些人可以实现“回声定位”。
    4. 方向感知。带上一个腰带,该腰带中指向北方的蜂鸣器会缓慢震动,一段时间后,就会一直知道北方在哪里(带着腰带),而不是再去首先感受蜂鸣器振动
    5. 植入第三只眼。一段时间后,青蛙就会熟练使用第三只眼。

    这一系列实验表明,大脑的许多区域,其功能仅取决于输入数据,换言之,这些区域都有一个“通用算法”。如果我们能了解这一小块区域算法我们就能用计算机进行模拟,进而可能会创造出AGI。但显然这是一条很困难的道路,因为我们不确定大脑是不是就是一堆算法,就算是,我们也不知道这个算法什么,但希望通过我们的努力在某一个可以接近这个“算法”。

      实现AGI的想法真的很迷人,我们应当理性看待,而不应过度炒作。但如果同学们觉得这些伦理问题困扰到了自己,就不用想这么多,也不用想什么AGI,只要知道神经网络一个很有帮助的工具也很不错。

    原文地址:https://blog.csdn.net/weixin_46258766/article/details/134708977

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

    如若转载,请注明出处:http://www.7code.cn/show_30714.html

    如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

    发表回复

    您的电子邮箱地址不会被公开。 必填项已用 * 标注