探索是促进创新的引擎。创新促进经济增长。让我们一起去探索吧。
Edith Widder
在这里,我提供了一个介绍性指南,解释了如何使用 TensorFlow,为这种技术提供热身,这无疑将在迫在眉睫的技术场景中发挥主导作用。 事实上,还有 TensorFlow 的其他替代方案,每个方案最适合特定问题;我想邀请读者探索 TensorFlow 包之外的内容。
这些包有很多不同之处。 有些更专业,有些更不专业。 有些比其他更难安装。 其中一些有很好的文档,而另一些尽管运作良好,但更难找到如何使用它们的详细信息。
重要的是:之后的日子里,TensorFlow 由谷歌发布,我在推文 [49] 中读到了 2010-2014 期间,新的深度学习包每 47 天发布一次,2015 年每 22 天发布一次。 这很惊人,不是吗? 正如我在本书的第一章中提出的那样,作为读者的起点,可以在 Awesome Deep Learning [50] 找到一个广泛的列表。
毫无疑问,2015 年 11 月,随着 Google TensorFlow 的发布,深度学习的格局受到影响,现在它是 Github 上最受欢迎的开源机器学习库 [51]。
请记住,Github 的第二个最着名的机器学习项目是 Scikit-learn [52],事实上的 Python 官方的通用机器学习框架。 这些用户可以通过 Scikit Flow(skflow)[53] 使用 TensorFlow,这是来自 Google 的 TensorFlow 的简化接口。
实际上,Scikit Flow 是 TensorFlow 库的高级包装,它允许使用熟悉的 Scikit-Learn 方法训练和拟合神经网络。 该库涵盖了从线性模型到深度学习应用的各种需求。
在我看来,在 TensorFlow 分布式,TensorFlow 服务和 Scikit Flow 发布后,TensorFlow 将成为事实上的主流深度学习库。
深度学习大大提高了语音识别,视觉对象识别,对象检测和许多其他领域的最新技术水平。 它的未来会是什么? 根据 Yann LeCun,Yoshua Bengio 和 Geoffrey Hilton 在 Nature 杂志上的精彩评论,答案是无监督学习 [54]。 他们期望从长远来看,无监督学习比监督学习更重要。 正如他们所提到的,人类和动物的学习基本上没有受到监督:我们通过观察世界来发现它的结构,而不是通过被告知每个物体的名称。
他们对系统的未来进展有很多期望,系统将 CNN 与递归神经网络(RNN)相结合,并使用强化学习。 RNN 处理一个输入,该输入一次编码一个元素,在其隐藏单元中维护序列的所有过去元素的历史的信息。 对于 TensorFlow 中 RNN 实现的介绍,读者可以查看 TensorFlow 教程中的循环神经网络 [55] 部分。
此外,深度学习还面临许多挑战;训练它们的时间推动了新型超级计算机系统的需求。 为了将最佳的知识分析与新的大数据技术和新兴计算系统的强大功能相结合,以前所未有的速度解释大量异构数据,仍然需要进行大量研究。
科学进步通常是大型社区的跨学科,长期和持续努力的结果,而不是突破,深度学习和机器学习一般也不例外。 我们正在进入一个非常激动人心的跨学科研究时期,其中像巴塞罗那那样的生态系统,如 UPC 和 BSC-CNS,在高性能计算和大数据技术方面具有丰富的知识,将在这个新场景中发挥重要作用。
[1] The MNIST database of handwritten digits. [Online]. Available at:http://yann.lecun.com/exdb/mnist [Accessed: 16/12/2015].
[2]_ Github_, (2016) Fist Contact with TensorFlow. Source code [Online]. Available at:https://github.com/jorditorresBCN/TutorialTensorFlow[Accessed: 16/12/2015].
[3]_ TensorFlow Serving_[Online]. Available at: http://tensorflow.github.io/serving/[Accessed: 24/02/2016].
[4] Google Research Blog [Online]. Available at: http://googleresearch.blogspot.com.es/2016/02/running-your-models-in-production-with.html?m=1[Accessed: 24/02/2016].
[5]_ TensorFlow Serving_-Architecture Overview[Online]. Available at: http://tensorflow.github.io/serving/[Accessed: 24/02/2016].
[6] TensorFlow Serving– Serving a TensorFlow Model [Online]. Available at:http://tensorflow.github.io/serving/serving_basic [Accessed: 24/02/2016].
[7] TensorFlow, (2016) Download & Setup [Online]. Available at: https://www.tensorflow.org/versions/master/get_started/os_setup.html#download-and-setup[Accessed: 16/12/2015].
[8] Wikipedia, (2016). IPython. [Online]. Available at: https://en.wikipedia.org/wiki/IPython [Accessed: 19/03/2016].
[9] TensorFlow: Large-scale machine learning on heterogeneous systems, (2015). [Online]. Available at:http://download.tensorflow.org/paper/whitepaper2015.pdf[Accessed: 20/12/2015].
[10] TensorFlow, (2016)Python API – Summary Operations. [Online]. Available at:https://www.tensorflow.org/versions/master/api_docs/python/train.html#summary-operations [Accessed: 03/01/2016].
[11] I recommend using Google Chrome to ensure proper display.
[12]TensorFlow, (2016) TensorBoard: Graph Visualization.[Online]. Available at:https://www.tensorflow.org/versions/master/how_tos/graph_viz/index.html[Accessed: 02/01/2016].
[13] One reviewer of this book has indicated that he also had to install the package_python-gi-cairo_.
[14] Wikipedia, (2016). Mean Square Error. [Online]. Available at: https://en.wikipedia.org/wiki/Mean_squared_error [Accessed: 9/01/2016].
[15] Wikipedia, (2016). Gradient descent. [Online]. Available at: https://en.wikipedia.org/wiki/Gradient_descent [Accessed: 9/01/2016].
[16] Wikipedia, (2016). Gradient. [Online]. Available at: https://en.wikipedia.org/wiki/Gradient[Accessed: 9/01/2016].
[17] Github, (2016) Book source code [Online]. Available at:https://github.com/jorditorresBCN/TutorialTensorFlow. [Accessed: 16/12/2015].
[18] TensorFlow, (2016) API de Python – Tensor Transformations [Online]. Available at:https://www.tensorflow.org/versions/master/api_docs/python/array_ops.html [Accessed: 16/12/2015].
[19] TensorFlow, (2016) Tutorial – Reading Data [Online]. Available at:https://www.tensorflow.org/versions/master/how_tos/reading_data[Accessed: 16/12/2015].
[20] Github, (2016) TensorFlow Book – Jordi Torres. [Online]. Available at:https://github.com/jorditorresBCN/LibroTensorFlow/blob/master/input_data.py[Accessed: 19/02/2016].
[21] Github, (2016) Shawn Simister. [Online]. Available at: https://gist.github.com/narphorium/d06b7ed234287e319f18 [Accessed: 9/01/2016].
[22] Wikipedia, (2016). Squared Euclidean distance. [Online]. Available at:https://en.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance[Accessed: 9/01/2016].
[23] In my opinion, the level of explanation of each operation it’s enough for the purpose of this book.
[24] TensorFlow, (2016) Python API. [online]. Available in: https://www.tensorflow.org/versions/master/api_docs/index.html [Accessed: 19/02/2016].
[25]Actually “_” is like any other variable, but many Python users, by convention, we use it to discard results.
[26] Github, (2016) TensorFlow Book – Jordi Torres. [online]. Available at: https://github.com/jorditorresBCN/LibroTensorFlow [Accessed: 19/02/2016].
[27] TensorFlow, (2016) Tutorial MNIST beginners. [online]. Available at:https://www.tensorflow.org/versions/master/ tutorials/mnist/beginners[Accessed: 16/12/2015].
[28] Neural Networks and Deep Learning.Michael Nielsen. [online]. Available at: http://neuralnetworksanddeeplearning.com/index.html [Accessed: 6/12/2015].
[29] The MNIST database of handwritten digits.[online]. Available at:http://yann.lecun.com/exdb/mnist [Accessed: 16/12/2015].
[30] Wikipedia, (2016). Antialiasing [online]. Available at: https://en.wikipedia.org/wiki/Antialiasing[Accessed: 9/01/2016].
[31]_ Github_, (2016) Book TensorFlow – Jordi Torres. [online]. Available at:https://github.com/jorditorresBCN/LibroTensorFlow/blob/master/input_data.py [Accessed: 9/01/2016].
[32] Google (2016) TensorFlow. [online]. Available at: https://tensorflow.googlesource.com[Accessed: 9/01/2016].
[33] Wikipedia, (2016). Sigmoid function [online]. Avaliable at: https://en.wikipedia.org/wiki/Sigmoid_function [Accessed: 12/01/2016].
[34] Wikipedia, (2016). Softmax function [online]. Available at: https://en.wikipedia.org/wiki/Softmax_function [Accessed: 2/01/2016].
[35] TensorFlow, (2016) Tutorial MNIST beginners. [online]. Available at:https://www.tensorflow.org/versions/master/tutorials/mnist/beginners[Accessed: 16/12/2015].
[36] Neural Networks & Deep Learning.Michael Nielsen. [online]. Available at:http://neuralnetworksanddeeplearning.com/index.html[Accessed: 6/12/2015].
[37] TensorFlow Github: tensorflow/tensorflow/python/ops/gradients.py [Online]. Available at:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/gradients.py[Accessed: 16/03/2016].
[38]_ Github_, (2016) Libro TensorFlow – Jordi Torres. [online]. Available at:https://github.com/jorditorresBCN/LibroTensorFlow[Accessed: 9/01/2016].
[39] The reader can read more about the details of these parameters on the course website of CS231 –Convolutional Neural Networks for Visual Recognition(2015) [online]. Available at:http://cs231n.github.io/convolutional-networks[Accessed: 30/12/2015].
[40] GIMP –_Image processing software by GNU,_Convlution matrix documentation available at:https://docs.gimp.org/es/plug-in-convmatrix.html[Accessed: 5/1/2016].
[41] TensorFlow, (2016_) Tutorials: Deep MNIST for experts_. [on line]. Availbile at:https://www.tensorflow.org/versions/master/tutorials/mnist/pros/index.html [Consulted on: 2/1/2016]
[42] TensorFlow, (2016)Python API. ADAM Optimizer[on líne]. Available at:https://www.tensorflow.org/versions/master/ api_docs/python/train.html#AdamOptimizer[Accessed: 2/1/2016].
[43] Github, (2016) Source code of this book [on líne]. Availible at: https://github.com/jorditorresBCN/TutorialTensorFlow [Consulted on: 29/12/2015].
[44] TensorFlow, (2016) GPU-related issues. [online]. Available at: https://www.tensorflow.org/versions/master/get_started/os_setup.html#gpu-related-issues[Accessed: 16/12/2015].
[45] This output is result of using a server with 4 Tesla K40 GPUs from theBarcelona Supercomputing Center (BSC-CNS).
[46]_ Github_(2016) AymericDamien. [online]. Available at: https://github.com/aymericdamien/TensorFlow-Examples [Accessed: 9/1/2015].
[47] Distributed TensorFlow, (2016) [online]. Available at: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/distributed_runtime[Accessed: 16/12/2015].
[48] Github, (2016) Source code of this book [on líne]. Availible at: https://github.com/jorditorresBCN/TutorialTensorFlow [Consulted on: 29/12/2015].
[49] Twitter (11/11/2015). Kyle McDonald:2010-2014: new deep learning toolkit is released every 47 days.__2015: every 22 days.[Online]. Available at:https://twitter.com/kcimc/status/664217437840257024[Accessed: 9/01/2016].
[50] GitHub,(2016)Awesome Deep Learning. [Online]. Available at: https://github.com/ChristosChristofidis/awesome-deep-learning[Accessed: 9/01/2016].
[51] Explore GitHub, Machine learning: [Online]. Available at:https://github.com/showcases/machine-learning [Accessed on: 2/01/2016]
[52] Scikit-Learn GitHub: [Online]. Available at:https://github.com/scikit-learn/scikit-learn[Accessed: 2/3/2016]
[53] Tensorflow/skflow GitHub: [Online]. Available at:https://github.com/tensorflow/skflow[Accessed: 2/1/2016]
[54] Yann LeCun, Yoshua Bengio and Geoffrey Hinton (2015). “Deep Learning”. Nature 521: 436–444 doi:10.1038/nature14539. Available at:http://www.nature.com/nature/journal/v521/n7553/full/nature14539.html [Accessed: 16/03/2016].
[55] TensorFlow, (2016) Tutorial – Recurrent Neural Networks [Online]. Available at:https://www.tensorflow.org/versions/r0.7/tutorials/recurrent/index.html[Accessed: 16/03/2016].
[56] Hello World en TensorFlow. Spanish version of this book [Online]. Available at:https://jorditorres.org/libro-hello-world-en-tensorflow/[Accessed: 16/03/2016].