深度学习从入门到放弃之1---准备篇

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/LEEANG121/article/details/102527362


深度学习的概念于2006年由Hinton等人提出,随后深度学习在学术界和工业界的应用越来越广泛,说是现在应用最广泛的学科一点不过分。深度学习广泛应用于图像识别、语音处理、语义处理、自动驾驶、医疗图像等领域。
现在越来越多的人开始触电深度学习领域,有相关学科专业的、也有非科班出身的。作为非科班出身的代表(计算机0基础、编程0基础、AI概念0基础),本人也莫名其妙对深度学习产生了‘浓厚’的兴趣。当我发现我对此感兴趣后,我一度以为我是爱学习、喜欢接触新的知识领域,直到有人告诉我可能是这个行业的发展前景及薪资水平让我做出了‘错误’的判断后。。。
废话不多说,我们直接进入主题:我是如何开始探究深度学习的(我现在可能都还在门槛之外徘徊),这里我仅总结一下我个人的一点小的心得,希望可以帮助到和我一样迷茫的小白朋友们~

~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~ 罪恶的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

什么是深度学习

关于深度学习,各个参考书上有太多详细的介绍,这里我不在赘述,本文主要记录我个人对于学习深度学习的一点小小的心得,希望可以帮助到准备入坑的小白们。
深度学习是AI领域的一个分支,AI下面有机器学习,机器学习下面就是深度学习。那么到底什么是深度学习,我们做深度学习到底在做什么?就像下面最右边的图片一样,深度学习其实就是通过对一堆数据(数据通常是别人整理好的)根据我们的需要首先进行预处理,然后选择一组合适的数学模型对这些数据进行反复摩擦(目的是为了调整模型里面的参数),最终使得模型可以对同类别的、新的数据进行一个正确的判断。这个过程就是深度学习的过程。学习的结果就是我们调整好参数的模型有了对该类问题的一个基本判断能力,再给它相关的边界条件后,利用这个模型,我们就能够预测出相应的结果。这就是深度学习(个人总结,如果有不准确的地方、欢迎指正)

在这里插入图片描述

深度学习的基本过程

当我们了解到深度学习其实就是通过让计算机学习样本数据的内在规律和表示层次,从而让计算机可以像人一样去分析数据的时候,下一步我们就需要了解深度学习的一个通用步骤了。
在这里插入图片描述
如上图所示,深度学习的过程,大体可以分为8个步骤:数据的获取及预处理;模型的定义、编译、训练及评估;最后是预测数据及保存模型。其中数据处理是核心的工作任务之一,我们常常会把大量的时间花费在训练数据的处理上而非构建神经网络上面,有时候仅仅标注一张图像就需要花费一个小时的时间!当然了模型的搭建‘也’很重要,为什么说‘也’,因为太太太难了~~~所幸好消息是,算法通常都是免费的:谷歌和其他巨头更倾向于向世界分享他们最先进的(state-of-the-art)研究成果,但是他们从不会共享数据。而且吴恩达也说过,论文已经足够了!不过前提是你能看懂论文并能看懂数学公式~最后就是预测数据和保存模型了。预测数据是我们的目的,保存模型是为了方便我们进行迁移学习。

如何着手学习深度学习

那么问题来了,如何开始学习深度学习?
其实这是一个‘贱人贱智’的问题,网上关于学习的方法和步骤也能搜出一箩筐,参考书也很多。但是貌似对于一个纯小白(不懂计算机、不懂神经网络、不懂编程的‘三不’人员)来说不是很友好。
我们以Tensorflow为例,打开各类参考书籍,第一章往往叫做tensorflow基础,除了讲解如何安装tensorflow之外,就开始介绍张量、计算图与会话等基础知识。这里应该是我们的第一道学习门槛,且不说我们对于数学知识的掌握程度是否理解张量这些数学术语的概念,单是学习建张量、常量这些玩意儿,可能就会花费我们很多时间,很多人可能就在这种过程中已经放弃了学习。。。
自学这件事情在我看来就好像一场单人马拉松,如果不能明确的知道自己到终点的距离,也不知道终点在哪里,是很容易半途而废的。所以我们不妨先直接找几个简单的例子,按部就班的照着例子训练几个模型并对新数据进行预测。先尝到一点‘胜利的喜悦’,然后再反过来看,在这个过程中,我有哪些不明白的地方,再逐步突破他们。一旦我们逆向推导全部搞定了,其实我们也就基本掌握了深度学习的整个过程。
关于深度学习的例子(一定要包含完整的代码,代码不完整,对于不会编程的人来说会很痛苦),可以参考我写的Tensorflow学习笔记实战系列,当然也可以参考Tensorflow官方教程(笔记代码就是来自官方教程,然后加上自己的注释)。
我们以房价预测为例,看一看我们在这个深度学习模型的建模过程中具体做了哪些事情:
在这里插入图片描述
房价预测问题是深度学习教程中的一个基本的示例,模型搭建很简单,但是基本涵盖了深度学习涉及的各个方面。通过完成这个简单的示例,我们对房价深度学习做的事情有了一个最初步的认识,这就好像我们跑步前我们知道了我们的目的地大概在什么地方,路上会有哪些标志物。我们再去学习它,相信就不会特别的迷茫了。

当我说我要学习深度学习,我在学什么

当我们完成了几个简单的例子之后我们会发现,其实我们在训练深度学习模型的过程中要做的事情就这么几件事:
1,载入数据
数据的格式有很多种,那么如何根据不同的数据类型进行数据的输入使我们要掌握的内容。
2,处理数据
大部分时候,对于我们的数据,计算机是看不懂他们的,因此我们需要对我们的数据进行修正。让计算机明白哪些数据是参数,哪些数据代表了标签(就是让计算机认识数据,看到这些数据,知道这些数据是张三还是李四)
3,搭建模型
所谓搭建模型,其实就好像拼积木一样,给模型添加各种网络层,比如卷积层、池化层、全连接层等,这些层具体是做什么用的,我会在之后的笔记中详细说明。
4,设置模型的优化策略
这一步的目的是找到一种优化模型的方法,让模型梯度快速下降并防止模型出现过拟合和欠拟合。
5,训练模型
这里要设置合理的循环步骤,这也是一个调参的过程。
上面的每一项都很重要,尤其是处理数据,毕竟好的数据是成果的一半嘛~~
总的来说,学习深度学习其实就是学习上面每个模块的过程,当我们把每个模块都搞清楚会用了之后,我们自然就会深度学习了。

总结

当我们要去接触一个新的领域的时候,目标很重要,坚持是最大的前提。而在目标和坚持之间,方法则是我们通往成功的捷径。选对了方法,我们才能事半功倍。
以上就是我个人在进行深度学习过程中的一点小小心得,希望可以帮助到打算入坑的小白们,如果有好的建议,欢迎大家指正!

猜你喜欢

转载自blog.csdn.net/LEEANG121/article/details/102527362