李宏毅机器学习笔记-6 深度学习简介(Brief Introduction of Deep Learning)


Brief Introduction of Deep Learning - 深度学习简介

1. 前言

  • deep learning 在近些年非常热门,从2012年开始,深度学习的应用数目几乎是呈指数增长的。
  • 深度学习的发展史如下图:

2. 深度学习的步骤

2.1 第一步: 定义一个神经网络

  • 神经网络由神经元组成,每个神经元如上图所示,每个神经元都有一个 bias 和一个 function ,每条输入的边都有一个 weight

  • 假设这个神经元的输入是 (a1,a2,a3) ( a 1 , a 2 , a 3 ) ,则最后的输出是

    sigma(a1w1+a1w2+a3w3+bias) s i g m a ( a 1 ∗ w 1 + a 1 ∗ w 2 + a 3 ∗ w 3 + b i a s )
    ,输入和输出都是一个 向量(vector)

  • 神经网络有许多神经元组合而成,神经元之间的连接一般为全连接(fully connect),第一层是输入层(input layer),最后一层是输出层(output layer),中间的叫做隐层(hidden layers)前一层的输出作为后一层的输入。

  • 深度学习中的所谓深度就是指神经网络有很多 hidden layers

  • 神经网络的计算可以转换成矩阵计算,这么做的好处就是可以用 GPU 进行加速,可以大幅度提高计算效率。

  • 例子: 手写数字辨识

    • 输入: 一张 16*16 的图片,即 256 维的向量

    • 输出: 一个 10 维的向量

    • 如何决定神经网络的结构? 一般只能通过经验加尝试,还有你的直觉。真是玄学~

    还有一些方法能让机器自己去学习出神经网络的结构,但是还不成熟。也有一些其他的除全连接之外的结构,比如 卷积神经网络(Convolutional Neural Network)

2.2 定义一个函数的好坏(Loss Function)

  • 可以有很多种方法,其中有一种方法是计算 Cross Entropy,公式如下:

    Total Loss:

2.3 找出最好的函数

  • 没有其他的,就是用 梯度下降法(Gradient Descent),但是因为深度学习的函数太复杂,要直接计算微分的话,计算量实在太大了,所以一般会用一个叫做 反向传播(Backpropagation) 的算法来做,这个算法会在之后详细介绍。

3 一些废话

  • 再说一句,虽然我们是用 Backpropagation 来帮我们算微分,但是其实就连这个我们都不会自己去算,基本都是用一些工具来帮我们,比如 TensorFlow。到此结束了吗?没有的,人这么懒的生物,觉得 TensorFlow 也太复杂了,所以又写了一堆 API 去直接调用 TensorFlow ,这就是之后会讲到的 Keras,果然懒才能推动人类不断进步。
  • 由于上述原因,大部分搞机器学习就是调调包,跟叠积木一样,不知道这是好还是不好。我也只是个初学者,希望能在这条路上走得远一些。

你可能感兴趣的:(机器学习,机器学习,深度学习,神经网络,笔记)