demi的博客

机器学习里,数学到底有多重要?

之前总有同学问:如果学习机器学习、人工智能用什么软件比较好?从与大家的交流中发现,很多同学把机器学习的核心放到了软件的使用,缺少获取有用结果所必要的数学方法与思维。

事实上,目前针对机器学习的软件十分容易获取,例如 Python,scikit-learn,Weka 等等,而且相应的软件学习教程也不难找到。

但机器学习是集合了统计学、概率论、计算机科学、数学算法多等方面交叉研究,即便你对机器学习的应用炉火纯青,但对这些技术没有一个全面的数学理解,极有可能出现应用失误。

那自然有同学会问:

为什么机器学习中的数学很重要?

这个问题的理由我想强调以下几点:
1. 选择合适的算法,要考虑的包括算法准确性、训练时间、模型复杂度、参数的数量和特征数量。
2. 选择参数设置和验证策略。
3. 理解偏差与方差的权衡以确定欠拟合和过拟合。
4. 预估正确的置信区间和不确定性。

你需要多高的数学水平?

试图了解一个例如机器学习这样的跨学科领域,主要的问题是必要的数学知识的量,以及理解这些技术需要的数学水平。这个问题的答案是多方面的,取决于个人水平和兴趣。

图像识别中的深度学习

来源:《中国计算机学会通讯》
作者: 王晓刚

1、深度学习发展历史

深度学习是近十年来人工智能领域取得的重要突破。它在语音识别、自然语言处理、计算机视觉、图像与视频分析、多媒体等诸多领域的应用取得了巨大成功。现有的深度学习模型属于神经网络。神经网络的起源可追溯到20世纪40年代,曾经在八九十年代流行。神经网络试图通过模拟大脑认知的机理解决各种机器学习问题。1986年,鲁梅尔哈特(Rumelhart)、欣顿(Hinton)和威廉姆斯(Williams)在《自然》杂志发表了著名的反向传播算法用于训练神经网络,该算法直到今天仍被广泛应用。

神经网络有大量参数,经常发生过拟合问题,虽然其识别结果在训练集上准确率很高,但在测试集上效果却很差。这是因为当时的训练数据集规模都较小,加之计算资源有限,即便是训练一个较小的网络也需要很长的时间。与其他模型相比,神经网络并未在识别准确率上体现出明显的优势。

【算法学习】空洞卷积

一、空洞卷积的提出

空洞卷积(atrous convolutions)又名扩张卷积(dilated convolutions),向卷积层引入了一个称为 “扩张率(dilation rate)”的新参数,该参数定义了卷积核处理数据时各值的间距。

该结构的目的是在不用pooling(pooling层会导致信息损失)且计算量相当的情况下,提供更大的感受野。 顺便一提,卷积结构的主要问题如下:
池化层不可学
内部数据结构丢失;空间层级化信息丢失。
小物体信息无法重建 (假设有四个pooling layer 则 任何小于 2^4 = 16 pixel 的物体信息将理论上无法重建。)

而空洞卷积就有内部数据结构的保留和避免使用 down-sampling 这样的特性,优点明显。

二、空洞卷积原理

如下如,卷积核没有红点标记位置为0,红点标记位置同正常卷积核。

大众消费者容易对物联网产生这5个误解!

万物互联是未来时代的发展趋势,物联网的应用正一步步改变着世界,也改变着我们的日常生活。在物联网遍及社会生活的每个角落之前,我们有必要认清关于物联网的5个认知误区。

什么是物联网?它是一套新的连接技术,有望在未来十年内为数十亿的设备提供网络连接。这套技术,也就是物联网。它涵盖洗碗机、烘干机及其他的家用电器,还有车辆及公共场所的一些设施,甚至覆盖无数工业应用。他们的共同点是:收集数据并将其发送到企业或其他系统中。

虽然人们接触物联网这个词汇有一段时间了,但是对于它到底是什么以及它在物理世界中的工作方式,尚存困惑。以下是关于物联网技术的一些主要误区,认知这些误区在一定程度上可供企业高管和其他试图入局物联网的企业参考。

1. 物联网的规模很小?

当我们向别人介绍什么是物联网时,通常会提到智能手环、共享单车、智能售货柜等较小的设备来回答这个问题。因此,很多人认为物联网是小规模的。事实上,物联网的应用远非这些,智能手环属于可穿戴设备领域,共享单车属于智慧交通领域,智能货柜属于新零售领域,此外还有智慧城市、智慧物流、工业4.0等等领域,而这些,又仅仅是物联网架构的行业应用。

GPU图像处理的基本流程

现代GPU提供了顶点处理器和片段处理器两个可编程并行处理部件。在利用GPU执行图像处理等通用计算任务时,要做的主要工作是把待求解的任务映射到GPU支持的图形绘制流水线上。

通常的方法是把计算任务的输入数据用顶点的位置、颜色、法向量等属性或者纹理等图形绘制要素来表达,而相应的处理算法则被分解为一系列的执行步骤,并改写为GPU的顶点处理程序或片段处理程序,然后,调用3D API执行图形绘制操作,调用片段程序进行处理;最后,保存在帧缓存中的绘制结果就是算法的输出数据。

虽然数字图像处理算法多种多样,具体实现过程也很不相同,但是在利用GPU进行并行化处理时,有一些共性的关键技术问题需要解决,如:数据的加载,计算结果的反馈、保存等。

下面对这些共性的问题进行分析,并提出相应的解决思路。

1. 数据加载

常见的WiFi攻击技术及检测方法总结

导语:IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。虽然有人将Wi-Fi与802.11混为一谈,但两者并不一样。

802.11标准下常见的WiFi攻击

流量嗅探

实际上,所有的WiFi流量都可以在监控模式下使用适配器进行嗅探。大多数Linux发行版都支持将某些WiFi芯片组放入这个监控的模式中,这样就可以处理所有网络流量。

加密的网络也没有你想象的安全,WEP加密甚至WPA2-PSK都是不安全的,攻击者可以通过欺骗一个deauthentication框架来强制一个新的身份验证过程,从而将你的设备与网络断开。

由于嗅探流量是被动进行的,不能被检测到。所以实际上所有开放或关闭的WiFi通信都是公开的,这就要求在更高层次上进行通信加密,比如HTTPs。

暴力访问

和其他密码一样,无线网络的密码也可以被暴力获取。WEP可以通过分析记录的流量在几分钟内被破解,并被渲染成无用的。所以对于WPA安全网络,黑客只需要一个标准的字典攻击即可达到目的。

学习机器学习需要理解的五个基本概念

这篇文章主要讲述了机器学习的相关内容,阐述了机器学习的主要意义和形成过程。区别了机器学习与AI、深度学习、神经网络等专业词汇。

大多数人可能对机器学习有点恐惧或困惑。 脑子中会有它到底是什么,它有什么发展方向,我现在可以通过它挣钱吗等等这样的问题。

这些问题的提出都是有依据的。事实上,你可能没有意识到自己其实多年来一直在训练机器学习模型。你看过苹果手机或者是Facebook上的照片吧? 你知道它如何向你展示一组面孔并要求你识别它们吗?其实,通过标记这些照片,你正在训练面部识别模型去识别新面孔。恭喜你,现在可以说你有训练机器学习模型的经验了!但在此之前,请阅读这些机器学习基础知识,以便你可以准确回答任何后续问题。

1)机器学习可以预测

如果你只是在图片中标记朋友的面孔,那就不是在用机器学习模型。如果你上传了一张新照片系统马上告诉你每个人是谁,那你就是应用了机器学习模型。机器学习的主要意义在于根据图案模型和经过训练的其他因素来预测事物。它可以预测任何事物,如要基于地理位置和卧室数量预测房价,基于一年中的时间和天气的变化预测航班是否会延误,依据图片中的人物特点进行人像识别等等。

基于离屏渲染技术确定raycasting算法中的投射光线参数

raycasting算法在众多体绘制算法中以采样精度高,绘制图像细腻著称,但计算量的缺点阻碍了它的广泛应用。

GPU的raycasting算法被提出后,达到了实时交互的绘制速度。近年来,该技术逐渐成熟,可分为两类:单通路和多通路。多通路最早被提出,由于GPU的可编程性能较差,需绘制体数据包围盒多次来计算光线参数,而随着GPU的可编程性能提高,单通路算法被提出,只需绘制一次体数据包围盒就可获得投射光线参数,但顶点着色程序较为复杂。最近利用离屏渲染获取投射光线参数的方法被提出,该方法绘制包围盒两次来获取投射光线参数,避免的复杂的顶点着色程序。下面对该算法进行详细的叙述。

主要由以下几个部分组成:

(1). 3D纹理的生成。保存原始3D体数据场为3D纹理。

(2). 投射光线起始点、终点的确定。利用Framebuffer object执行离线渲染来确定投射光线参数。Framebuffer object于2005年提出,主要用于离屏渲染,它在显存中定义一块存储区域作为帧缓存使用,和真正的帧缓存一样,同样包括颜色缓存、深度缓存和模板缓存等,不同的是将绘制的结果保存在与Framebuffer object绑定的纹理对象中,而不是直接显示在屏幕上。确定投射光线起点、终点等参数的步骤如下:

Unity开发中提升效率的高级技巧(一)

作为一名Unity3D游戏开发者,无论是初学者,还是已经就业的工作者,在平时的学习工作里,掌握一些Unity开发的高级技巧,能够很好的节省开发时间,提高开发效率,毕竟世界如此美丽精彩,我们应当把时间花费在更有价值的事情上。

Unity开发技巧:

1、借助编辑器自带的标记功能为脚本分类,在检视面板中点击脚本图标下方的小三角,即可为脚本设置颜色或选择图标,可以选择自定义的图标。

Unity开发中提升效率的高级技巧

2、在使用Debug.Log函数时传递游戏对象给第二个参数gameObject,既可在点击控制面板的输出信息时自动定位到对应的游戏对象,方便查找游戏物体。

三分钟看懂人工智能核心技术:深度学习

自从2012年以来,深度学习(Deep Learning)就以一种势如破竹之势突破了一个个经典的人工智能问题。面对人工智能的快速发展,你不想了解它的基本工作原理吗?

想搞清楚什么是深度学习,要先从人工智能说起,自从 1956 年计算机科学家们在达特茅斯会议(Dartmouth Conferences)上确认人工智能这个术语以来,人们就不乏关于人工智能奇思妙想,我们梦想着拥有人类五感(甚至更多)、推理能力以及人类思维方式的神奇机器。如今,虽然梦想的局面还没有出现,但是稍微弱一点的人工智能已经大行其道了,比如:图像识别、语音识别、多语言翻译等。

机器学习是实现人工智能的一种重要方法。机器学习的概念来自早期的人工智能研究者,简单来说,机器学习就是使用算法分析数据,从中学习并自动归纳总结成模型,最后使用模型做出推断或预测。与传统的编程语言开发软件不同,我们使用大量的数据送给机器学习,这个过程叫做“训练”。