2022我的年度总结-- AI遮天之路

Posted 老师我作业忘带了

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022我的年度总结-- AI遮天之路相关的知识,希望对你有一定的参考价值。

我是一个普普通通的大学生,我的博客记录了我学习编程以来共计1年多的水平,我希望能把自己大学的经历、选择、困惑等与同样身处大学,选择AI方向不知如何发展的人进行分享,因此写了这篇年终总结。

另外,对于一些刚刚开始写博客的大学生,我也会介绍写博客会收获些什么。或许没人看,但我依旧有心分享。

一、自我介绍

本人是一末流985院校计算机科学与技术专业的学生,由于初高中成绩经常名列前茅拿过各种奖项,游戏、体育也是学校上等水平,结果高考失利后郁郁寡欢,直接就开始了大学生活,导致我常年彻夜失眠不堪重负,每天在室友的呼噜声中迎来天亮,他们去上课,我疲惫入眠。最终在大二休学了一年。所以如今我虽然是大三,但实际上只有大二的经历。

我是一个渴望通过自己的努力让自己焕然一新男孩,想让自己快乐,想让自己忘掉过去,让自己死气沉沉的身体再次充满生命力。

22年初前后,我开始写博客,这不光拯救了我自甘堕落的人生,也开始渐渐让抑郁的我走出阴霾。

二、这一年干了什么

1.初识开发这条路

在去年的这个时候,我还在学习开发相关的知识。要不是检查博客时间,我还以为这已经是很遥远事情了。

这是我们学校上个月软件工程课要求交的期末实验作业,用了2、3个周的时间,基本上是我学习前后端半年/大半年所吸收的知识凝结的净化了,下面的文章链接介绍了使用了技术:

Django+DRF+Vue+Mysql+Redis OUC软件工程作业_老师我作业忘带了的博客-CSDN博客

当然,这之前也做过微信小程序、Qt桌面等东西,自认为在学生作品中还算像模像样。

2. 初识AI这条路

我相信绝大多数人学习python的初衷都是要搞人工智能,只不过是被后来的经历磨平了棱角。听见开发不如Java便有所动摇。

我虽然三年如一日的活在高考失败的痛苦中里,但我依然相信我有这个实力去学它,我的初衷也是,哪怕我长期逃课不学无术,整日浑浑噩噩,早已经失去了一些基本学术知识和良好的习惯...

于是,我开始了我的“AI遮天之路”,(中二,但还是觉得好听与好玩,注意是AI遮天不是我遮天,我不狂,我就是个菜鸟小学生。)

我看了一下,我大概是从7月份开始学习AI的,专门弄了一个专栏,《AI遮天传》,记录我所学来的笔记。

第一个模型是决策树:

写这种教学类的文章最大的痛苦就是就是:想象对面是一个小白,得想方设法把他讲明白,于是我每篇记几万字的笔记,但是没人看0.0。当然这或许也有些背离我当初只想把CSDN当作学习的笔记的初衷了。。。

我不知道别人是怎么学的,我作为一个上大学前不会分辨显卡CPU等的学生,更别谈人工智能的基础了。我刚开始学的时候,它给我感觉就是:好多知识!

这就很痛苦了,由于我是“散修”,没有宗门指导,我便发挥我的水平硬学!

我记得以前玩DNF的时候女鬼剑"二觉",其中一句介绍的台词是“凝百家之长”,为了学习AI,我先后观看了3~4家教育机构视频,4~7本人工智能书籍,2~3个优质博主文章,得到的收获就是,这本就不是学习一遍就会的知识

关于数学,我觉得高数、线代、概率论这些都是一些基本应该掌握的东西,是一些工具。

因此,入门AI,我建议“凝百家之长”,且 "温故而知新"。

莫要想着一遍就懂,我自认为我足够聪明;

莫要觉得枯燥,我时常浮躁;

但比我优秀的人,他们一句怨言也没有。

既然选择了远方,后面你懂的。

3. 看下"大二"学生顶着学校课程的压榨,自学AI五个月的成果吧:

以下荣誉,虽都是虚的,但我学到的知识都是实实在在的。

  • 获得1W粉丝

相比于那些一年涨几万几十万的大佬虽然不值一提,但对我来说已经很开心了。不过我的运气也算比较差,我产量最高的那会即我刚学那会遇上了CSDN的原力计划,多次上热榜第一只能得到100多个粉丝,不过也无所谓,毕竟咱的初衷是记笔记、结束浑浑噩噩的日子。

  • 五个月输出40+篇文章,很多都是几万字的。这也代表着我学到了40+的知识。

  • 多次热榜第一、领域榜第一、青岛市原力第一、每日/每周值得一看

  • 认识了一些大佬及他们对我的鼓励

  • 一些有趣的事

  • 博客之星

人外有人,天外有天,大佬太多了,路漫漫其修远,我什么时候才能拥有大佬的学问~

三、后悔没做什么

大学让我后悔的事应该就是没去参加ACM校队和没有选择保研这条路了吧。

如果你是大一新生,ACM能进就进,别怕累,都是应该的。保研能保就保,尽量别选择考研,时间成本问题。

四、一些困惑、选择和痛苦

我前面说到我高考失败,三年如一日活在痛苦中,彻夜难眠+夜晚失眠的时候两个室友打呼噜听到天亮,浑浑噩噩不去上课,我三年的大学生活休学了一年,致使我必须在共计2.5年内学完大学所有学分再能顺利毕业,并且还要完成考入上等985的目标,这让我压力太大了!!!!

好在,经过我的努力,以及学校“必须先学完先修课”的要求,我尝试了各种方法,最后徒劳无奈延毕了。我虽想完成“2.5年内学完大学所有学分并完成考入上等985”这一壮举,但现实不允许。我连考研408的课程还没上过呢,好在延毕了,把我的希望熄灭了,不然下一年怕是要把自己累死。

我安慰自己,虽然我大三,但我休过学,就当自己大二吧。

本科生走人工智能这个方向,道阻且长。我观察那些大厂要的都是一些硕士。即如果你是以本科生的身份,不去当研究生,那么你的竞争对手可能会是那些上等985的卷王硕士,人手几篇顶会,你觉得不去当研究生延长自己学习时间,以一个本科生自学的水平会有优势吗?

我不清楚,毕竟我"大二",我也不知道等到大四我会是什么水平,我倾向于去读研,我是一个农村的孩子,我渴望改变命运。

五、学校的课程?

和你们讲一个恐怖的,我将来想要走AI方向,但为了完成学分要求,我不得不学一堆乱七八糟的东西,一堆! 这也是本科生自学AI的烦恼,根本没有时间做自己该做的事! 为了完成作业、为了得到学分。这里就不细说课程的内容我要学什么乱七八糟的内容了,总之如果想拥有技术,那就不要理会学校所教的字面知识、和PPT上面那些东西。踏踏实实自学。

我本来有一大堆要吐槽的我们学校课程安排的事情,让我吃尽了苦头,想想算了。

六、学习资料?

python入门相关的学习资料,我自认为学到了近几年最好的。我也自认为我精通python。

开发相关的资料,包括html到Vue、Django、DRF、数据库等,我觉得我看的资料也不错。

AI等相关的学习资料,上面说过,我先后观看过3~4家教育机构视频,4~7本人工智能书籍,2~3个优质博主文章等等,以及我怎么开始,制定的路线,路上的思考,私聊我都可以分享。

也算是作为一个大二学生,曾经的”天才“,现在的差生,吃过一些苦,走过一些弯路后,想要与人分享的喜悦罢。

七、其他建议

对于那些20岁上下年入千万的人,不要眼红,我们是学者,360行,行行出状元,我们要做好学者应该做的事。

当然也别被一条路堵死,可以考虑玩玩短视频行业什么的,"盖将自其变者而观之 则天地曾不能以一瞬翻译。"人生短暂,学校毕业后就要工作成家了,已经不是麻烦爸妈的小孩了,多考虑考虑如何发展吧,又或是多陪陪父母。

AI遮天传 ML-无监督学习

一、无监督学习介绍 

机器学习算法分类(不同角度):

  • 贪婪 vs. 懒惰
  • 参数化 vs. 非参数化
  • 有监督 vs. 无监督 vs. 半监督 
  • ......

什么是无监督学习?(unsupervised learning)

解释 1

  • 有监督:涉及人力(human label)的介入
  • 无监督:不牵扯人力(是否要通过人来给一些label分辨属于哪些类别)

解释 2

  • 给定一系列数据: x1 , x2 , . . . , xN
    • 有监督:期望的输出同样给出 y1 , y2 , . . . , yN
    • 无监督:没有期望输出

解释 3

  • 有监督:学习的知识关注条件分布 P(Y|X)
    • X = 样例(用其特征来表示), Y = 类别
  • 无监督:学习的知识关注联合分布 P(X),
    • X: X1 , X2, …, Xn
  • 半监督学习:通过一些(少量)有标注的数据和很多无标注的数据学习条件分布 P(Y|X)

对于监督学习:

我们通过多个样例<xi,yi>来训练模型,对于一个需要预测的样例xn+1,我们通过训练完的模型对其进行预测,得到yn+1,(x一般很复杂,有多种特征值,y一般比较简单,比如是某分类)如:

对于无监督学习

对于给的一组x1...xn,我们一般会预测下一个xn+1是什么样,或者x1...xn它们是一个什么样的结构组成的。

对于半监督学习

有一堆数据(1,2...n...m),有一些是由标注的,还有一些是没有y的(m>>n),对于有标注的那部分,我们还是以监督学习的方法的到模型去预测输入的样例。我们用100个数据去学习10000个数据,我们可以看对于那些没有标注(y)的,哪些与有标注的相类似(如果不使用基于实例的学习方法的话)。

无标注数据的结构

无监督学习中最重要的就是学到无标注数据的结构

  • 构建模型找到输入的合理表示
    • 可以用来做决策、预测未知数据、将输入高效迁移到其他学习器等
  • 发现数据的结构
    • 一篇学术论文包含题目、摘要......
    • 半结构化网页中蕴含结构化信息
    • 图片中的像素不是随机生成的
    • 不同的用户兴趣组

对于一张图片,我们随即交换像素点和RGB后:

而实际上它是这样一张图片:

这里的结构信息就是什么样的像素RGB它们是在一起的。此外还涉及一些语义信息,比如我们在图片中可以看到有树,草地,天空,这些经过分割后,下一步才会做一些理解,比如右下角是一朵向日葵,阳光,中间的两个分开的房子...

ps:一个有趣的小问题:如果我们不知道它是一棵树,那怎么把它分割成一棵树了呢?如果没有办法把它分割出来,又怎么能知道它是一棵树呢?

我们可以用无标注数据干什么

  • 数据聚类
    • 在没有预先定义的类别时将数据分为不同的组(cluster/class)
  • 降维
    • 减少所需要考虑的变量数量(去掉较小的特征值。比如SVD矩阵分解方法。)
  • 离群点检测
    • 识别机器学习系统在训练中未发现的新数据/信号 Identification of new or unknown data or signal that a Machine Learning system is not aware of during training
  • 刻画数据密度

二、聚类介绍

什么是聚类?

  • 将相似的对象归入同一个“类”
    • “Birds of a feather flock together. ” “物以类聚,人以群分”
    • 发现数据的结构
  • 使得同一个类中的对象互相之间关联更强
    • 同一个类中的对象相似
    • 不同类中的对象有明显差异
  • 核心问题:相似度定义(距离)
    • 簇/类内(intra-cluster)相似度
    • 簇/类间(inter-cluster)相似度

什么样的聚类好?

通常,我们认为类内距离小类间距离大的聚类更好。

聚类类型

软聚类(soft clustering) vs. 硬聚类(hard clustering)

  • 软:同一个对象可以属于不同类
  • 硬:同一个对象只能属于一个类(用的比较多)

如:

层次聚类 vs. 非层次聚类

  • 层次:一个所有类间的层次结构(tree)
  • 非层次: 平的,只有一层

如:

聚类的应用

  • 生物学
    • 将同源序列分组到基因家族中
    • 基因数据的相似度往往在聚类中被用于预测种群结构
  • 图像处理 e.g. 自动相册
  • 经济 – 尤其是市场商务智能
    • 找到不同的顾客群体,e.g. 保险
  • WWW
    • 文档/事件 聚类,e.g. 每周新闻摘要
    • WEB日志分析,e.g. 找到相似的用户
  • ……

数据聚类需要什么?

  • 无标注数据
  • 对象间的 距离 相似度度量
  • (可选)类间的距离或相似度度量
  • 聚类算法
    • 层次聚类
    • K-means、K-mediods
    • ……

数据

  • 向量 x ∈ D1 × D2 · · · × DN
  • 类型
    • 实数值 Real: D=R
    • 二值 Binary: D = v1 ,v2 e.g., Female, Male
    • 非数值 Nominal: D = v1 ,v2 ,...,vM e.g., Mon, Tue, Wed, Thu, Fri, Sat, Sun
    • 有序值 Ordinal: D = R or D = v1 ,v2 ,...,vM
    • 用于顺序非常重要的场景 e.g., 排名

相似度度量

  • 相似度 =   ps:反比 也不一定就是倒数
  • 实数值数据
    • 内积
    • 余弦相似度
    • 基于核
  • 回顾基于实例学习中的距离度量
    • Minkowski 距离
      • Manhattan 距离、Euclidean 距离、Chebyshev 距离
    • ……

  • 非数值
    • E.g. "Boston", "LA", "Pittsburgh"
    • 或 “男” , “女",
    • 或 “弥散”, “球形”, “螺旋”, “风车"
    • 二值
      •  
    • 对应的语义属性
      • E.g. Sim(Boston, LA) = a*dist(Boston, LA)-1 ,
      • Sim(Boston, LA) = a*(|size(Boston) - size(LA)|) / Max(size(cities))
    • 相似度矩阵

  • 有序值
    • E.g. “小” , “中”, “大”, “特大"
    • 归一化成 [0,1] 间的实数值:
      • max(v)=1, min(v)=0, 其他进行插值
      • E.g. “小”=0, “中"=0.33, etc.
    • 然后就可以使用实数值变量的相似度度量
    • 可以用相似度矩阵

三、层次聚类

  • 层次地构建一个类,比如一个由不同类组成的树状结构
    • 父节点所涵盖的点被分割为兄弟类
  • 以不同的粒度解释数据

凝聚式层次聚类算法(Agglomerative, bottom-up)

  • 通过迭代过程得到嵌套式聚类结构
  • 算法:(以文档聚类为例)
    • 计算文档之间的相似系数
    • 把n个文档中的每一个分配给自己构成一个簇
    • 把最相似的两个簇类ci和cj合并成一个
      • 用新构成的簇类代替原来的两个簇
      • 重新计算其他簇与新生成簇之间的相似性
  • 重复上述过程,直到只剩下k个簇(k可以等于1)

类相似度 

实例:意大利城市的层次聚类

分裂式层次聚类(Divisive, top-down)

根据一个类中最大的间隔进行分裂

  1. 最大平均类内距离的点:Splinter group
  2. 其他点 :保持不变(Old party)
  3. 重复以下操作直到不再发生改变: 把满足MinDist_to_Splinter >= MinDis_to_Old的点:Splinter

分裂式层次聚类vs. 凝聚式层次聚类

层次聚类的相关讨论

优点

  • 可以从不同粒度观察数据,十分灵活
  • 可以方便适应各种形式的相似度定义
  • 因此适用于各种属性类型

缺点

  • 停止条件不确定
  • 计算开销大、很难应用到大的数据集上

神经科学数据分析中的应用

四、K-means 聚类

算法:

  • 给定一个类分配方案C,确定每个类的均值向量:g1,...,gk。
  • 给定K个均值向量的集合g1,...,gk,把每个对象分配给距离均值最近的类。
  • 重复上述过程直到评价函数不发生变化。

不保证找到最优解

算法的收敛性

K-means 算法特性小结

模型: 向量空间模型

策略: 最小化类内对象的欧式距离

算法: 迭代

硬聚类

非层次

K-means 算法举例

应用举例:不仅仅是聚类 —— 图像压缩

数据:所有像素

特征:RGB值

 每个像素根据所属类的中心对应的 R,G,B 值进行重画

K-means讨论:如何确定“k”?

  • 问题驱动
    • 通常问题本身会设定一个需要的 K 值
  • 只有满足下列条件之一时,可以是 ”数据驱动” 的
    • 数据不稀疏
    • 度量的维度没有明显噪音
  • 如果 K 值没有给定
    • 计算类间不相似度 Wk (与类间相似度相反) (或者检验类内相似度) —— 与 K 相关的函数
    • 一般来说, K 值增加,Wk 值降低

方法1:

方法2 :

K-means :更多讨论

  • 当数据呈几个紧凑且互相分离的云状时效果很好
  • 对于非凸边界的类或类大小非常不一致的情况也适用
  • 对噪声和离群点非常敏感

五、K- medoids

用 medoid – 用最靠近类中心的对象作为类的参考点 而不是用类的均值

基本策略:

  • 找到 n 对象中的 k 个类,随机确定每个类的代表对象
  • 迭代:
    • 其他所有对象根据距离最近的类中心进行类的分配
    • 计算使得cost最小的类中心
  • 重复直到不再发生变化
  • 代价函数:类内对象与类中心的平均不相似度

K- medoids改进算法:PAM(Partitioning Around Medoids)

基本策略:

  • 找到 n 对象中的 k 个类,随机确定每个类的代表对象
  • 迭代:
    • 其他所有对象根据距离最近的类中心进行类的分配
    • 随机用一个非中心对象替换类中心
    • 类的质量提高则保留替换

类的质量

代价函数:类内对象与类中心的平均不相似度

如总代价为20

K-Medoids讨论

优点:

  • 当存在噪音和孤立点时, K-medoids 比 K-means 更鲁棒
  • 如果能够迭代所有情况,那么最终得到的划分一定是最优的划分,即聚类 结果最好

缺点:

  • K-medoids 对于小数据集工作得很好, 但不能很好地用于大数据集
  • 计算中心的步骤时间复杂度是O(n^2),运行速度较慢

基于大样本的改进算法:CLARA(Clustering LARge Applications)

基本策略:当面对大样本量时:

  • 每次随机选取样本量中的一小部分进行PAM聚类
  • 将剩余样本按照最小中心距离进行归类
  • 在各次重复抽样聚类的结果中,选取误差最小,即中 心点代换代价最小的结果作为最终结果

无监督学习总结

有监督 v.s. 无监督学习

聚类

  • 数据及相似度度量

层次聚类      

  • 凝聚式 (从下到上)
  • 分裂式 (从上到下)

K-means 聚类

K-medoids 聚类(及其变种与改进:PAM,CLARA)

以上是关于2022我的年度总结-- AI遮天之路的主要内容,如果未能解决你的问题,请参考以下文章

AI 之路回顾 2021,展望 2022 :当代青年的小烦恼

四家中国企业上榜AI 开发工具崛起,CB Insights 2022 年度 AI 100 全球榜单发布...

2022人工智能年度评选结果揭晓!今年最值得关心的AI公司&人物&产品都在这里...

AI遮天传 ML/DL-感知机

产业智能化创新标杆 2022年度“飞桨产业应用创新奖”颁布

2021人工智能年度评选结果揭晓!AI落地最佳参考在此奉上