移动互联网时代的个人隐私——Android篇

移动互联网时代,电子设备与用户的生活关联变得愈加密切,设备本身能够获取的用户信息也越来越多,越来越精确,对于用户隐私的保护,在全世界范围内都是一个大议题。在当下,除去硬件厂商自身需要定期及时更新安全补丁,用户自身也需要加强隐私管理观念,保护自我。

笔者作为一个普通 Android 用户,也相对比较关注隐私保护这一块儿,有一些自己粗浅的见解,如果有什么疏漏,欢迎各位读者指出。

笔者的使用情况:

深度学习概述

本人没看过任何深度学习概述资料,下面的话都是根据我参考各样模型后瞎诌出来的。

在大家都过着七夕看喜鹊的时候,本鸽忽然想起了本组还没更新博客,看了下发现进度居然还没更新到深度学习(别说了,我发现传统的机器学习算法也没搞),于是打算开始挖个深度学习坑。

AI现状

要说现在的AI,基本都在搞深度学习(为什么,因为无敌啊)。传统的机器学习算法算法效果在目前的一些问题上往往非常复杂,而且效果很差,很多算法已经发展的比较饱和,性能上很难有大突破。但深度学习是机器学习上比较新的领域,结构比较统一(但有些还是复杂),训练过程简单(但时间仍然长),发展迅速(主要是钱多)一线的研究人员多(论文好混)。于是本组的学习现在基本都从传统算法向深度学习靠近。

深度学习和传统机器学习算法的区别

传统机器学习算法基本都在分类、聚类等问题做了些模型,在分类问题上做的比较多(因为很多问题都可以转化为分类问题),要说有什么可以随便翻翻书有一大堆。在分类问题上,一个模型预测一条数据的过程基本是这样的
<!–more–>
特征->分类结果

也就是给一个模型数据特征,然后模型返回出他的结果。看起来简单,但实际问题中,特征往往不好确定。比如简单的iris数据(鸢尾花卉数据),每条数据只有4个属性(花萼长度,花萼宽度,花瓣长度,花瓣宽度),那这4个数据都可以作为特征进行学习。但如果是320*240像素的一张图片,把像素拉成一个向量,有76,800个像素,全用作特征的话特征数量就非常大了,即使有各种降维算法,效果和速度仍然会非常慢。所以有人想出了简单的方法,使用一种设计好的特征提取器,用这个特征提取器从原始图片中提取特征,这样就可以疯狂减少特征量。(和之前文章中的haar算法很像,从图片提取人脸特征的就是一种)但这样就会出现另外一种问题:如何设计这个特征提取器,不同的提取器最终分类效果各异,要找出非常好用的实际上非常困难。最难受的是这个特征提取器不容易迁移,在一个问题上表现非常好的提取器,在另外一个问题上可能就不行。
至此,深度学习概念可以比较好解决这个问题。研究发现,一段声音可以分解成数个基础波(复变函数学的好的同学已经可以理解了,此处不多加解释,不懂的同学可以翻阅傅里叶变换),同样,图像也可以(二维的傅里叶变换),从这个角度设计滤波器,把图像分解成无数个(理想模型是无数个,实际上受限于机器)正交纹理(正交纹理是我随便叫的)的叠加,统计每个正交纹理的数量,把这个数量作为特征进行分类。同时这个滤波器作为特征提取器是由参数构成的,分类模型通过学习训练调整参数,特征提取器也同样可以。在训练过程中调整特征提取器的参数,从而提取出更加正交的特征,这就是深度学习特有的地方。也就是说,深度学习预测数据的过程是这样的

原始数据->特征->分类结果

这样考虑,不同的问题,只需要训练一遍,他就能自动训练出一个好用的提取器,而且有比较好的迁移能力(大部分深度学习模型都通过预训练加快学习速度)因此,深度学习在图像、视频、文字处理上都有比传统机器学习更好的表现。

设计模式之工厂模式:简单工厂&工厂方法&抽象工厂

背景

设计模式有3大类,分为:创建型模式结构型模式行为型模式。工厂模式属于创建型模式,创建型模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。

简单工厂

描述:定义一个类用于创建父类相同的子类对象,由传入参数决定创建哪个子类。
简单工厂
举个例子,我喜欢玩游戏。定义一个Game接口,让具体的游戏去实现这个接口
继续阅读设计模式之工厂模式:简单工厂&工厂方法&抽象工厂

sql注入小结

0.原理及简介

  • sql注入为web系统特有的漏洞.源于php,asp等脚本语言对用户输入数据和解析时的缺陷.如果用户的输入能够影响到脚本中sql命令串的生成,以php语言为例子,在字符串中添加了单引号或#号等转义字符后,能够改变数据库最终执行的sql命令.
  • sql注入的精髓在于构造精妙的注入命令串,分析服务器的反馈,猜测出数据库的每个表的关系,最后彻底攻破数据库.
  • 现在最常见的网站类型组合为:asp+sql server与php+mysql,本小结简要总结一下对这两种网站类型常用的攻击方式.
    继续阅读sql注入小结

Vue生命周期

前言

文章是对整个Vue生命周期,以及在不同生命周期的过程中所发生的一些过程,以及一些简单的原理。涉及响应式,依赖收集,template编译,patch机制,diff算法。当然本篇文章只是简单梳理了一下过程,每一个部分并没有详细介绍,因为每一个部分的实现都是一个篇幅很长的东西。而且下面整理的很乱,估计只有我自己能看懂吧,后面有时间会重新整理一遍发上来。

继续阅读Vue生命周期

[SpringBoot] 使用 slf4j+logback 配合 aop 做日志记录

需要大致了解:java日志基础,如核心组件Loggers,Appenders,Layouts的用处、SpringAOP概念

为什么需要日志

当应用程序部署到服务器上运行时,用户在使用过程中可能会出现各种错误。这时应用程序将错误信息生成日志,就方便了开发人员快速定位错误和根源,从而进行有针对的维护。所以,在大型应用程序中,日志记录是必不可少的。
继续阅读[SpringBoot] 使用 slf4j+logback 配合 aop 做日志记录