以下内容为本人在观看李宏毅教授关于 DeepLearning(2017) 课程期间所做的学习笔记,是对李宏毅教授课上所讲内容及自己在听课过程中所做的思考的一些总结。
对于 deep learning 的实现主要就是三个Step ,首先是第一个Step
Step1 Neural Network(define a set of function)
第一步就是要创建一个network(model),而这个network其实是由function set组成,而所谓的function set实际是由一些简单的function 所组成,而这些简单的function就是neuron(神经元),而network的结构通常是由我们自己设计出来的。
Step2 Cost Function(the goodness of function)
在初步建立我们所需要的function之后我们还需要对其进行评估,以确定其性能好坏,case by case,通常根据现有的training data来检验其性能。
Step3 Optimization(pick the best function)
找出最佳的function set
所谓的Neural Network实际上是由许许多多的Neuron(神经元)组成的网络
而将这些Neural Network通过不同的方法连接则会得到不同的Network Structure,而在这些Neural Network里面有一大堆的logistic regression(逻辑回归),每个logistic regression都有自己的weight和bias,这些weight跟bias集合起来就是这个Network的parameter。
在这些Neuron的连接方式中,最常见的就是Fully Connect FeedForward Network,排列方式如图所示
这里Neuron中输出用到的是sigmoid函数,也可替换成其他函数 所以这里的一个Neuron Network 就可以把它看做成一个function,所有的function连接起来就是一个function set 总结来说可以把Neural Network 表示成如下所示 即将整个的Neural Network 表示成很多层的Neural,这里称作Layer,而每一个Layer里面又包含若干个Neuron。整个Network 中任意一个Layer中的Neuron都会与其前后的Layer中的Neuron两两连接,所以称其为Fully Connected,而每一个Layer中的Neuron的output都会成为下一个Layer中Neuron的input,即由后往前传递。故称其为FeedForward Network。
整体的结构总结起来就是整个Network首先需要一组input vector(输入向量)也称Input Layer,经过整个Network的运算之后会由最终的Output Layer生成一组Output vector,而中间所有的Layer就统称为Hidden Layer(隐藏层),而这里的Hidden Layer的层数也就代表了Deep(深度 )这个单词的含义。
【注】这里input 和output 的数据维数可以是不相同的,只要合理的设计Hidden Layer 就可实现
Network 的运算 对于Network的运算常常用Matrix Operation 来表示 即用矩阵的形式进行运算,每一个Layer中进行的运算就如图所示 而对于整个Network而言就相当于进行了一连串的Matrix Operation