月度归档:2017年03月

Machine Learning-线性回归(Linear Regression)

引言
最近在学习Machine Learning,为什么要学呢?一来呢是觉得AI是未来的一大发展趋势几乎是板上钉钉的事了,他的应用范围实在是太过广泛,不仅仅是在被媒体宣传的火热的AlphaGo,自动驾驶,高级机器人等,还有很多很多你看不到的领域正在逐步应用人工智能技术,比如广告系统,推荐系统,金融领域的量化交易,大数据分析等等。而ml恰恰是AI里面一个非常重要的部分。其次是因为对这门学科分支很感兴趣,想知道这背后到底有什么奥秘,机器究竟是如何学习的?它到底能智能到何种水平?
其实在13年的时候看过Andrew Ng在standford上的一门公开课CS229 Machine Learning,一开始看还可以,可是到后面黑板上书写的各种数学公式推导很模糊,感觉很吃力,而且没什么人监督,学着学着就荒废了。今年卷土重来,查了查入门资料,有人推荐Coursera上的Andrew Ng的课程,一开始我以为这门课就是我以前在网易公开课上看的那门课程,觉得体验不怎么好。但后面真正看了之后才发现两门课很不一样,Coursera的课堂互动模式实在太赞了,秒杀各种公开课视频。不仅PPT上的公式写的很清[……]

继续阅读

Java 8 新特征

本文主要包括以下内容:
Lambda 表达式
方法引用
接口的默认方法和静态方法
Stream API

Lambda 表达式(Lambda Expression)
Java8最大的变化莫过于引入函数式编程的概念,也就是Lambda表达式,它因数学中的λ演算得名。1958年LISP语言第一个支持了Lambda,发展至今,越来越多的编程语言也逐渐开始支持这一特征,比如C#,C++,PHP等。而Oracle终于在2014年正式在Java8中支持Lambda表达式,这个广大Java程序员期待已久的特性终于来临。
什么是Lambda 表达式?
看起来很高大上的名字,其实说白了就是一个匿名函数,它没有函数名,没有访问修饰符,只是用一个表达式来代表一个函数。在Java8中你可以把一个函数(Lambda表达式)作为一个方法的参数传递进去(很奇怪?下面会说)。
语法:

圆括号里代表的是参数,花括号里是函数体(返回),->在数学上的解释是由A推导可以得到B。Lambda表达式的语法很简单,具体细则就不说了,参考以个几个例子就可以很好[……]

继续阅读