【MindSpore系列总结】初探深度学习

初探深度学习

终于还是转行进入深度学习了。我一直有个梦想,希望面前机器能像人一样拥有情感,有自己的想法,自己的行事风格,而不是刻板地实现一个个既定的程序。现在在我面前出现了这么一个机会,让我可以深入了解深度学习、神经网络的领域,这是一个新的开始。

注:文章仅作分享,不作教程,具体开发教程网上其实很多。

AI框架的选择

当前最主流的AI框架莫过于Facebook 的pytorch和谷歌的tenserflow了。我的职业方向决定了我最后的选择一定是华为的mindspore,但是在这之前,我还是先使用pytorch来熟悉深度学习的流程。

深度学习的流程

我使用pytorch跑了两个最常见的demo,用以熟悉python的语法和深度学习的常见接口用法。在这之前,我使用的开发语言是C和C++,语言只是工具,开发思路总是互通的。

我跑的两个demo,一个是sin函数的拟合,一个是mnist数据集下的手写数字识别,这两个功能的开发算是深度学习领域的Helloworld,可以用于熟悉开发环境、了解运行流程。

环境配置

经推荐,我通过Anaconda来配置开发环境。Anaconda是一个专门的环境配置工具,有了这个工具,我们就不用去各个官网到处找资源、下载安装,该环境配置工具集成了python等基础语言,只需在该工具的环境下使用conda指令即可完成深度学习环境的配置。具体可在CSDN中搜索“Anaconda下配置pytorch环境”或“Anaconda下配置mindspore环境”,即可找到大量教程。

我用的代码编辑器是VSCode,这是微软的一个开源的,很好用的软件,支持安装C++、Python等各种语言工具,支持代码自动补全、代码检查等功能,还能直接在编辑器内拉起内置cmd窗口,很好用。

环境的配置需要花一些功夫,但是网上的教程很多。

代码开发

具体的开发代码我就不贴出来了,网上搜索“神经网络sin函数拟合”或“神经网络手写数字识别”,都能找到很多教程。在这我主要讲下深度学习的运行流程。

深度学习的做法是,提供大量带结果的数据给模型,从而更新模型内的参数,这样的话,模型在收到新的、不带结果的数据后,就可以用更新后的参数得到自己的结果。更新模型内的参数的这个动作,我们叫做训练。

所以说,整个流程包括:

1、提供大量带结果的数据

2、设计一个神经网络模型(以类的方式呈现)

3、选择损失函数和优化方式

4、将数据送入模型进行训练:正向传播->计算损失->计算梯度->更新参数->(使用新参数)正向传播…

5、数据训练完后,即可得到模型的参数,然后是验证、使用…

在具体的开发过程中,还有很多概念,比如数据集、优化器、批量梯度下降等,但是整体的流程和上述一致,这些概念在不断学习的过程中很容易理解。

机器情感

我的目标,是让机器也能有类似于人的情感。我感觉当前的图像识别和自然语言处理领域,实现的功能还仅是一种简单的神经反射,就像膝跳反应一样。训练得到一组固定的参数,然后就直接将这组参数拿去用,同一组输入面对同一组参数始终是同样的结果。情感不是这样的,人是一直在源源不断地输入数据的,视觉、听觉、触觉…人也是在无时无刻不在学习的,基于一套固有的奖惩机制,大脑中的参数、权重一直处于刷新状态,这造就了多变的、充满未知的情感。我希望能用深度学习模拟出这样的情感,我希望深度学习能实现这种奖惩机制、数据持续输入且持续学习的机制,真正造就出多变的情感。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值