主页 > 新闻资讯 > 2017即将爆发的Android技术

2017即将爆发的Android技术

2017比较火的概念:人工智能,图像识别,语音识别;技术驱动和数据驱动
机器学习:机器学习,深度学习,自然语言处理,图像处理,数据挖掘,精准推荐的分类
熟悉一种大数据处理的编程语言(R、Python、Java、Go、Perl、Ruby、SPSS等)
数据挖掘,搜索算法,精准推荐,深度学习,机器学习,图像处理,图像识别,语音识别,机器视觉,算法工程师,自然语言处理等方向现在十分火热。
  AI开发工作应该拥有哪些技术:
1.开发语言多数以R、python、JAVA为主。
2.将算法转换为代码的能力,即编码能力,这方面想提高除了多看多写,别无他法。
3.熟悉OpenCV,sklearn,tensorflow,caffe,Spark,keras,pyTouch等开发库,没必要全会,但是要有熟练的一个或几个。
4.大规模信息处理与分布式计算,开发环境搭建与优化,算法的调参与优化。
5.文档书写,团队人员的交流能力。
6.分析问题,分析数据,带入算法和模型到实际场景应用的能力。

 

  也许你会说今年WWDC给客户端打了强力一针,机器学习+AR。不得不泼冷水,机器学习跟做普通的App有啥关系吗?AR也是同理,有多少App需要用的到?再说机器学习的学习成本有多大,AR关于图形学的知识要学多久,这些都是问题。

> 2017 年你应该学习的编程语言、框架和工具- https://zhuanlan.zhihu.com/p/24369470

2017年,你需要GET的9大技术领域- http://geek.csdn.net/news/detail/134070

> 微信小程序

   微信小程序开发官方文档,要去熟悉HTML、CSS、js 的语法

官方文档教程1:http://bcoder.cn/wxopen/
官方文档教程2:http://bing.aliaii.com/wxopen/

官方文档教程:  https://mp.weixin.qq.com/debug/wxadoc/dev/

微信小程序精选Demo合集【持续更新中...】- http://www.jianshu.com/p/0ecf5aba79e1#

如何在微信小程序中实现今日头条App那样的Topbar- http://www.jianshu.com/p/fe5756b541d8#

实战:详解猫眼电影小程序开发过程- http://geek.csdn.NET/news/detail/137060

大众点评点餐小程序开发经验- http://geek.csdn.net/news/detail/188650

微信小程序-仿滴滴公交- http://download.csdn.Net/detail/wyx100/9802158

> 直播与VR

从 0 到 1 的 VR 界面设计之路- http://geek.csdn.net/news/detail/137534

趋势分析(大数据和VR)- http://blog.csdn.net/a910626/article/category/6246347

 

> 热修复

Android 热修复 Tinker接入及源码浅析- http://mp.weixin.qq.com/s/WHYA4aTWIHcd8CQ95StwDg

android 热修复 Tinker 源码分析之DexDiff / DexPatch- http://blog.csdn.net/lmj623565791/article/details/60874334

Android热修复学习之旅——HotFix完全解析- http://blog.csdn.net/u012124438/article/details/62511438

Android 热修复 Tinker Gradle Plugin解析- http://blog.csdn.net/lmj623565791/article/details/72667669

 

> 大数据、深度学习、自然语言处理

大数据、深度学习、自然语言处理- http://blog.csdn.net/malefactor?viewmode=contents
深度学习之图像修复- http://blog.csdn.net/stdcoutzyx/article/details/63686825
机器学习、图像处理- http://blog.csdn.net/stdcoutzyx?viewmode=contents

大数据、机器学习和云计算。人工智能  

李理:卷积神经网络之Batch Normalization的原理及实现- http://geek.csdn.net/news/detail/160906

经典的大数据问题- http://blog.csdn.net/qq_34328833/article/details/54584105

TensorFlow架构与设计:会话生命周期- http://geek.csdn.net/news/detail/188234

大数据相关开源项目汇总- http://www.ctolib.com/cheatsheets-big-data-open-source-projects.html?ref=myread

> 大数据
大数据在工作中的应用有三种:
与业务相关,比如用户画像、风险控制等;
与决策相关,数据科学的领域,了解统计学、算法,这是数据科学家的范畴;
与工程相关,如何实施、如何实现、解决什么业务问题,这是数据工程师的工作。

数据源的特点决定数据采集与数据存储的技术选型,我根据数据源的特点将其分为四大类:
第一类:从来源来看分为内部数据和外部数据;
第二类:从结构来看分为非结构化数据和结构化数据;
第三类:从可变性来看分为不可变可添加数据和可修改删除数据;
第四类,从规模来看分为大量数据和小量数据。

数据处理分为三大类:
第一类是从业务的角度,细分为查询检索、数据挖掘、统计分析、深度分析,其中深度分析分为机器学习和神经网络。
第二类是从技术的角度,细分为Batch、SQL、流式处理、machine learning、Deep learning。
第三类是编程模型,细分为离线编程模型、内存编程模型、实时编程模型。

> React Native

   react Native这类的技术,为实现UI层的跨平台而生,它能够在多端渲染出一样的界面,降低开发成本,但是它却仍然依赖已有的系统组件。它的跨平台特征都是建立在一个内置的JavaScript引擎上面的,你能够利用它已有的组件,但无法对组件进行更新和升级。

react-native完整实例—妹子图片查看app- https://Git.oschina.net/sleepforests/mmjpg-react-native

RN开发- http://blog.csdn.net/u012515223/article/category/5990897

> 机器学习

机器学习- http://www.techug.com/post/10-algorithms-machine-learning-engineers-need-to-know.html?1492429981192?ref=myread
机器学习算法可以分为三大类:监督学习、无监督学习和强化学习。监督学习和无监督学习的算法
监督学习:
1.决策树(Decision Trees),以结构化和系统化的方式来解决问题;
2.朴素贝叶斯分类(Naive Bayesian classification),贝叶斯公式,其中P(A|B)是后验概率,P(B|A)是似然,P(A)是类先验概率,P(B)是预测先验概率。应用:1.判断垃圾邮件;2.对新闻的类别进行分类,比如科技、政治、运动;3.判断文本表达的感情是积极的还是消极的;4.人脸识别
3.最小二乘法(Ordinary Least Squares Regression),线性指的是你用来拟合数据的模型,而最小二乘法指的是你最小化的误差度量。
4.逻辑回归(Logistic Regression).用于以下几个真实应用场景:1、信用评分/2、计算营销活动的成功率/3、预测某个产品的收入/4、特定的某一天是否会发生地震
5.支持向量机(Support Vector Machine,SVM),从规模上看,使用SVM(经过适当的修改)解决的一些最大的问题包括显示广告、人类剪切位点识别(human splice site recognition)、基于图像的性别检测,大规模图像分类……
6.集成方法(Ensemble methods)
无监督学习:
7.聚类算法(Clustering Algorithms)
8.主成分分析(Principal Component Analysis,PCA)
9.奇异值分解(Singular Value Decomposition,SVD)
10.独立成分分析(Independent Component Analysis,ICA)

 

1.《机器学习实战》(强烈推荐)、《统计学习方法》(偏底层数学推导)、《机器学习实践应用》(偏业务)。也可以去看看吴恩达老师的关于机器学习的斯坦福公开课。 
2.开源工具可以使用,有R、Spark-MLib、Sklearn等
3.开源数据集,推荐UCI数据集。

 

> 物联网

Google 之前还发布了物联网操作系统 Android Things,以及刚刚正式发布的深度学习系统 TensorFlow 1.0,一切的一切,都充满想象力,Google 是想打造一个从 Web 到原生 App,到跨平台、跨终端的操作系统,再到物联网、人工智能,这是一个超级帝国啊。如果对算法感兴趣的同学,强烈推荐选择深度学习领域,学习下 TensorFlow,尤其是还在读书,并且算法基础不错的学生朋友们,这些都是人工智能最核心的技术,但是门槛较高,不是所有人都适合学习的。种种迹象表明,继移动互联网之后,下一个风口浪尖很可能就是人工智能!
  PWA(Progressive Web Apps) 一定是将来的移动开发趋势。
  Service Worker:让网页无网络也能访问- http://blog.csdn.net/kymjs/article/details/55504780
  PWA 和 Service Worker 是什么关系?Service Worker 是一个运行在浏览器后台进程里的js,基于它可以实现消息推送,静默更新以及拦截和处理网络请求,包括可编程的响应缓存管理,是 PWA 的核心。 
开源实验室 (https://www.kymjs.com) 已启用 Service Worker,现在只要你访问过的文章,在主流浏览器(包括PC、手机)二次访问均可离线访问啦。

  开源物联网项目Openfpgaduino,https://github.com/OpenFPGAduino/
谷歌旗下最重要的人工智能系统Tensorflow,TensorFlow支持CNN、RNN和LSTM算法,CNN是Image领域常见的一种深度神经网络。由Yann LeCun提出,通过卷积来发现位置无关的feature,而且这些feature的参数是相同的,从而与全连接的神经网络相比大大减少了参数的数量。
  目前开源的实现分布式Deep learning的GraphLab就是GAS的架构,Google开源了一个单机版的Hadoop
Facebook也宣布开源其人工智能工具库,特斯拉也开源其电动汽车专利,而近期IBM也开源其量子计算平台。
 
 javascript的热部署也是一个比较热门的研究领域,通过热部署,物联网节点可以实现在运行过程中远程添加新功能,远程修正bug。
>   JavaScript物联网节点开发开源项目汇总
  OpenFPGAduino(https://github.com/OpenFPGAduino/)是笔者设计的基于Node.js与 FPGA的开源物联网软硬件开发平台,与Arduino等快速原型开发平台类似。基于node.js提供了网络交互能力,特别包括用于开发的网络IDE以及类似于树莓派的Linux软件开发系统,方便安装各种linux通用软件,并且通过FPGA提供了可编程的兼容Arduino外围接口用于与丰富的物联网传感器进行连接。
  iotjs(https://github.com/Samsung/iotjs)是三星开发的嵌入式JavaScript执行环境,能够在几百KB内存的嵌入式系统上,不依靠操作系统实现完整的网络与JavaScript支持。JavaScript解释引擎采用
  JerryScript(https://github.com/jerryscript-project/jerryscript),事件循环采用libtuv。可以说是Node.js的嵌入式版本,其API与Node.js相兼容。
  Esprunio(https://github.com/espruino/Espruino)是为微控制开发的嵌入式JavaScript解释引擎,提供了最小化的配置,可以在内存低至8KB的微控制器上执行JavaScript语言。
  Cyclon(https://github.com/hybridgroup/cylon)是使用JavaScript来做机器人控制的项目,支持市面上主要的开发板,通过提供各种外设的驱动,实现了不需要写一句C语言就能开发和组装一个机器人。
  现在大数据技术方兴未艾,在这些技术中,最基本的思想是MapReduce,这一思想将不同运算拆解为Map与Reduce,然后将这些Map与Reduce任务在集群当中最大限度地并行执行。实现MapReduce模式编程最重要的一点就是支持函数式编程或者又称为Lambda编程,所有的Map与Reduce操作都接受函数式编程作为参数。
 
> JavaScript物联网大数据开源项目
  Eclairjs(https://github.com/EclairJS/eclairjs-node)是基于Node.js的Spark大数据处理平台前端,通过Eclairjs,可以使用JavaScript来操作基于内存处理的大数据分析平台Spark,通过Spark内置的调度器,实现了在整个集群上调度资源,以最大化并行度来执行JavaScript的算法。目前,Spark是最主流和发展最快的大数据处理平台。
  skale(https://github.com/skale-me/skale-engine)是一个完全使用JavaScript开发,采用Node.js作为执行环境的分布式数据处理系统,具有比Spark更快的性能。
  MQTT是为物联网设计的轻量级通讯协议,协议基于TCP/IP,适用于低带宽不可靠环境。协议的开销非常小,支持发布订阅模式,是种非常高效的通信协议。MQTT.js(https://github.com/mqttjs/MQTT.js)是Node.js的MQTT通信模块,实现了Node.js收发MQTT数据。
  Kafka是大数据分布式消息总线,提供了对海量消息的持久化能力,通过将接收到的数据直接持久化到硬盘,提供了稳定的数据吞吐量以及高可用性。Kafka Rest(https://github.com/confluentinc/kafka-rest)模块为Kafka消息总线提供了Restful API 的支持,无论是使用浏览器还是Node.js都可以方便使用JavaScript来收发消息。
  convnetjs(https://github.com/karpathy/convnetjs)是完全用JavaScript写成的神经网络机器学习库,可以运行在浏览器中或Node.js中。convnetjs提供了许多有趣的例子,在浏览器上实现了对神经网络学习过程的可视动画呈现与交互模式,对理解神经网络机器学习有非常好的帮助。
  作为深度神经网络学习方向最重要也是最热门的项目,Google的TensorFlow是深度学习开源的里程碑。TensorFlow的开源使得使用深度学习来做数据处理已经不再是一件高难度的事情。Node-tensorflow(https://github.com/node-tensorflow/node-tensorflow)是一个NodeJS API,使用了Google的开源机器学习库TensorFlow。
 
> JavaScript数据展示开源项目汇总
  D3(https://github.com/d3/d3)是基于SVG的矢量图操作工具。通过使用JavaScript,D3将数据以矢量图形式展示出来并提供了任意伸缩的能力,在HTML5出现之前,D3是二维可视化的底层标准。通常许多绘制图表与数据可视化工具都使用D3作为底层驱动引擎,在其之上提供用户友好的API接口。
  three.js(https://github.com/mrdoob/three.js/)是基于WebGL的JavaScript3D绘图工具。通过WebGL扩展,JavaScript语言实现了直接驱动底层显卡进行3D绘图。three.js在3D图像基础上还提供了VR支持,可以方便的使用JavaScript来实现VR数据展示。
  ionic(https://github.com/driftyco/ionic)是基于AngularJS的移动端跨平台开发环境,能够在一个统一的框架下使用JavaScript HTML CSS,同时完成开发iOS、Android、Window Phone程序,并根据各个环境的不同UI做自动适配。
  Electron(https://github.com/electron/electron)是基于Node.js与chrome的跨平台桌面开发环境,electron通过将浏览器内核和后台Node.js服务进行打包,实现了一个使用JavaScript的全栈开发环境,无需任何修改就能够将程序部署到Windows、macOS、Linux平台上。
  nw(https://github.com/nwjs/nw.js)是轻量级的JavaScript跨平台桌面开发环境,它实现了在HTML代码中直接调用Node.js的各种API函数,提供了一个平滑自然的桌面应用开发环境,隐藏了客户端服务器编程的细节。
  物联网JavaScript实例讲解
  为更好理解JavaScript物联网开发,下面以笔者设计的物联网系统为例,详细介绍物联网系统的设计。所有设计资料都是开源的,读者可以对照源码网页与文档。( http://openfpgaduino.github.io)

> 神经网络
  神经网络:比原来更容易学习了- http://geek.csdn.net/news/detail/195039
一本是麻省理工学院出版社的《深度学习》,还有一本是《神经网络与深度学习》。上文列出的那些框架都包含了初学者的入门教程,并且只要你能上网上进行搜索,都能找到无数的网站和YouTube视频资源。我发现YouTube上的讲座和会议视频非常的有用。

融汇了视觉、语言和语音网络研发成果的神经网络架构MultiModel- https://arxiv.org/abs/1706.05137

 

> 人工智能AI

人工智能的对应的相应领域:统计学,机器学习,数据挖掘等