当前位置:首页|资讯|深度学习|机器学习|人工智能

深度学习学习笔记(一)——入门前の小tips

作者:吃橘猫的鲫鱼发布时间:2024-03-30

在大概一年前接触到深度学习,到现在略微算是在计算机视觉和深度学习方面略懂皮毛了,于是乎将学过的东西整理一下写成笔记,极其通俗易懂因为我也只是中学生QwQ也方便我日后回顾,希望对你的学习有帮助!

——吃猫鱼 2024.3.27

 

什么是深度学习?

  “深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。 深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。 深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。 深度学习在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。” --度娘

 

   按照鄙人的通俗理解,深度学习可以被简化理解成一个超函数,也就是一个超级厉害的函数,将输入视为一个集合(里面可以有图片、字符串....),输出视为一个集合(可以是标签),那么这个函数可以将输入集合映射到输出集合上,而深度学习的过程就是对这个超函数的参数进行不断优化,使得这种映射关系符合我们的预期。

        

有点丑QwQ


  而这个使超参数“优化”的过程就是训练,在训练中让网络判断出自己当前输出与预想输出的差异大小的算法叫损失函数,超函数成功把输入映射到输出上的概率叫ACC,与之相对的失败概率叫loss ....好了,现在你已经大概明白了一些相关学术论文中关于深度学习最经常出现的几个字眼的概念。快去爬论文罢!(bushi)

从大部分的简单的只有一两层的感知机到更复杂的VGG、ResNet基本都可以用这一套去解释

这个解释并不适用于所有的神经网络,但是大概是这么个意思(表达能力欠佳汗流浃背了)

 

怎么学深度学习(Deep Learning)?

打基础!

     能看到这篇笔记的受众大抵有两类人,一类是摸鱼了一个学期正在赶毕业论文的咸鱼、还有就是对这方面感兴趣的同学,对于刚入门的人来说,在一开始最好先学习一下基本的概念,这里我推荐我的深度学习胎教书—斋藤康毅的《深度学习入门》,ISBN 978-7-115-48558-8,将这本书啃完,书很薄要不了多少时间,读完它你就已经对这片知识的海洋有了个大概认识,可以磕磕绊绊的开始做自己的项目了

多实践!

来到实践阶段,使用numpy自己一点点手搓神经网络无异于沙滩上玩耍的孩童用沙子堆砌哈利法塔,既不现实也无必要。

深度学习框架是已经开发好的深度学习环境,集成了大量简单的,以及一些常用的模型,使得我们的开发就像是搭积木一样,so easy。掌握好一种深度学习框架,你基本可以搞定80%以上的应用场景

那么,接下来,请选择你的英雄:

               

 

 

 

 

 

Tensorflow                          pytorch                           kreas   

 

其中学习成本最低的就是pytorch,TensorFlow略难,但好在有较为简单的高度集成api,keras。而且就我自己踩过的坑来说,TensorFlow因为1.0与2.0的api变化特别大,而在网上寻找的教程又基本不会特别注明tf版本,导致自己开开心心Ctrl+v之后一跑一个不吱声,虽然不是什么大问题,2.0的代码也可以调用1.0api,但是还是给当初懵懂无知的我带来了困扰QwQ,建议大家从pytorch起手。

    我的学习路径

    先从比较简单的图像分类任务入手,MNIST手写数字识别  --》 ImageNet比赛中历年来表现比较好的一些模型像是 VGG16/19、ResNet、googlenet都可以去尝试跑一下 ---》 然后就可以尝试目标检测,像是滑窗法的什么RNN、FastCNN

  你可能会遇到的问题

这些深度学习框架都有自己的wiki,遇到问题先别急着哐哐一顿乱搜,静下心多爬文档,给你的收获远比在csdn复制粘贴要来得多,Keras文档虽然没有中文,但是有汉化镜像站(https://keras-zh.readthedocs.io/)

1.在学习过程中经常遇到的也很无语的但是很致命的问题:网络。 由于天朝特有的复杂电磁环境,我们基本无法访问GoogleDrive,甚至github,然而基本所有模型的预训练权重文件以及训练所需的数据集都存在GoogleDrive,这些关键文件无法获得我们手里的模型再刁也是一坨屎,如何解决呢,使用ladder(中文不兴打奥)   不会的话可以私信我 我看到后给你发教程 :)

2.层层封装的框带来一个问题就是报错信息很容易让我们一头雾水,从一个函数跳到另一个函数,子子孙孙无穷匮也,这时,我们就要发挥工具的力量,把报错信息全部丢给ChatGPT或者文心一言分析,再拿关键字去搜索相关文章或者issues。可以极大地提高修bug效率。

3.有时难以获取有效信息,搜索引擎给出的信息有时候往往不太能喂饱我们,这时候就要学会去github的issues里面搜索,特别是那些带closed标签的,那意味着你遇到的问题已经得到完美解决;此外,直接问ChatCPT、知乎、博客园、CSDN也是不错的选择。但我得吐槽一句csdn真司马啊  : - (

5.待补充...



 这个专栏我设想以项目为单位由易到难写下去,比如下一期我想写MNIST手写数字识别....

加油吧


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1