0%

开学前的瞎折腾第二弹,爬取博客数据,分析作者喜好。

在写这个的时候,突然想起来开学的英文单词怎么说来?百度翻译居然是open school,我自己瞎翻译的school start,话说正确的翻译应该是啥。

然后还是闲的没事开始写起了爬虫,恩,记得是上Web编程课的时候没兴趣听,自己开始在下面瞎鼓捣爬虫技术,当时爬了几个小例子但是也没搞太明白,不如实战一下。

回归正题,本文收录内容:使用爬虫爬取我自己的博客,当然给出最通用的爬虫分析和程序,内容如下:

  • 博客的主要发表时间
  • 博客的数量,标题;
  • 标签的数量种类,用户偏好等
  • 使用matplotlib粗暴的绘图分析一下

因不蒜子暂时没有开放第三方的API,所以没办法爬取每篇博客的访问量,分析博主哪类文章写的比较受欢迎,等不蒜子开放API后再来完善此工作。

注意,以下python程序最好在jupyter lab中运行,写一句看一句,而且后面的程序还会用到前面的变量。

本来打算剩余的几天寒假是好好看会儿高数的,结果吧,可能在家里实在是一点书都看不下去,昨晚看了俩小时高数骨头差点散架,学习这种事还是回学校再说吧。

倒是有一点记忆尤甚,空间中的点$(x,y,z)$到$x$轴的距离是多少,我居然脑子有坑算了向径的模,在和向径的$\alpha$角来了个正弦操作,晚上散步才想起来,这个距离不就是$y^2+z^2$嘛。。。

无聊到玩手机,还不如玩会儿带你闹,这几天的收获也较为丰富。

  • 自己没事瞎折腾,整理了windows窗口,任务栏,还安装了Mac系统下的dock栏,用(看)着很爽,但是,突然发现电脑的时间被我整没了,也就是我打开电脑看不了时间,很无语。于是就自己用所学知识(python+QT+pyinstaller)写了个图形化的小软件,可能这是我电脑上第一次运行自己安装的软件吧,当然这个过程遇到了一堆坑。

爬虫的东西准备放下一篇博客了。

2022 年 5 月 26 日回来复习。大概涵盖了这么多年写程序过程中遇到的梯度消失、梯度爆炸等基本情况,以及优化器的整理,后面会出一些为什么 train 到的神经网络准确率很低的文章。

有了梯度就要反向传播,而优化器对反向传播有着举足轻重的作用。这种东西之前很少接触,加上常年累月的直接调用,很多理论也忘记了。直到今天自己又去亲自探测了一番,恩,其实也不是不能接受。从统计学中的加权移动平均出发列举经受时间考验的优化器,和时间序列有异曲同工之妙,探求一下优化器的神奇之处。

来整理一下在机器学习中常用的优化方法,无非是在容易出问题的地方加入人的调控,包括数据数据,数据处理,反向传播,梯度函数等方面,在各种容易出问题的地方加入调控,使得神经网络更有效,或者说神经网络的运行在你的控制之中,而不是调了一堆参数后网络没有优化,甚至调一些无关紧要的参数。

本文收录内容:

  • 正则化的常用方式与实现
  • 有关数据输入和传输的处理
  • 优化后的梯度函数

还是在实际的背景下对于这些概念的理解,学会变通和利用已有的知识进行问题转换。

趁寒假看完了DeepLearning的前生今世之后,用了一个下午自己推导了一番,想来还是留下个电子版的整理,供他人交流和日后查阅。(其实是我纸质版整理的太丑了)。

本文收录内容:

  • 循环神经网络的基本概念
  • 循环网络的经典结构
  • LSTM与GRU的keras实现,自行查阅keras文档喽

重点是对于这些概念的理解,尽力写下人能看懂的公式描述,知道在什么背景下调用和背后的数学观念就可以啦。

感觉一篇博客写太长也不是很好,所以把RNN拆成了两部分,在描述了经典的RNN结构之后,再来看看为了满足实际应用,RNN结构所作出的变化和适应。

本文收录内容:

  • 双向循环神经网络
  • 深层的RNN模型
  • 序列化与注意力

还是在实际的背景下对于这些概念的理解,或者说是为了满足实际背景而产生了这些观念,学会变通和利用已有的知识进行问题转换。

某天(今天)下午闲的没事干,想起了当初学了一堆的深度学习的数学概念,还看了Keras的官方文档,既然会写(抄)代码和懂了理念,不如自己折腾点东西玩玩。

说干就干.png,本来是想做个OCR系统在写个GUI界面弄个小软件的,因为种种原因放弃(不喜欢那个数据集),猫狗大战的话数据量太大。挑来挑去选择了迁移学习,使用VGG16的结构去识别MNIST手写文字,怎么感觉有一个好的开始却选择了一个low的实现呢?其实也无所谓,重点是实现过程,有了这次过程实现以后的迁移学习就不是问题了。