机器学习(三)——Tensorflow

欢迎转载,请注明出处:https://blog.csdn.net/tayhh/article/details/82119943
1.先介绍下神经网络的重要元素:
①人工神经网络的优化机制:
是Optimization problem解决方案之一的Gradient Descent,Optimization还有Newton's method, Least squares method,有兴趣的同学可自行学习;
②误差方程:
cost function = (predicted -real)的平方;
③Gradient Descent找到初始化时误差曲线梯度下降的方向->更新参数->再找梯度下降的方向->更新参数。。。直到梯度线躺平;需要注意的是,梯度线躺平有可能是找到了全局最优解,也有可能只是找到局部最优解,不用纠结,即使是局部最优解也是很好的了。
机器学习(三)——Tensorflow
文章图片

④理解神经网络:
都说神经网络是黑盒,实际上,神经网络是通过隐藏层提取代表性特征:
feature ->feature representation 1->feature representation 2->...->output
从这个角度来看,隐藏层的动作并不黑盒,只是提取出来的代表性特征,人类看不懂罢了,但是计算机看得懂。而提取代表性特征的能力剥离出来,就是迁移学习的关键;
2.tensorflow出身:
tensorflow是谷歌研发的人工智能学习系统;附上官网网址,同学自己学习:https://www.tensorflow.org/
3.tensorflow安装:
cpu版本:pip install tensorflow
gpu版本:pip install tensorflow-gpu
详细安装过程:https://www.tensorflow.org/install/
4.tensorflow通用学习模式:
机器学习(三)——Tensorflow
文章图片


5.Session对话控制方式:
method 1:
sess = tf.Session()
sess.run()
sess.close
method 2:
with tf.Session() as sess:
sess.run()
【机器学习(三)——Tensorflow】6.定义变量:
tf.Variable()
需要和:
init = tf.initialize_all_variables()
sess.run(init)
共同使用
7.placeholder功能:
接收外部的传入值,
需要和feed_dict{input1:, input2:}共同使用
8.激活函数:
①一般是非线性方程;
②是对线性方程的掰弯:作用在神经元上,自变量是神经元的传入值,应变量是神经元的传出值;
③经常使用的激活函数是:relu,sigmod,tanh, 完整的激活函数:
机器学习(三)——Tensorflow
文章图片

④选择激活函数:层数少的神经网络任选无碍;CNN一般选用relu; RNN一般选用relu或tanh;
9.添加或定义神经层:
定义三个方面:参数、合并计算、激励函数;
举个例子:
机器学习(三)——Tensorflow
文章图片

机器学习(三)——Tensorflow
文章图片

10.下篇继续讲tensorflow构造神经网络:CNN, RNN, LSTM in RNN
这篇完整代码已经上传github:tensorflow.py
https://github.com/Tayhh/MachineLearning

    推荐阅读