复合函数

kotlin学习笔记之复合函数f(g(x))

匿名 (未验证) 提交于 2019-12-02 23:40:02
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zsp765098084/article/details/91439054 与高阶函数类似,复合函数的参数也是一个函数,不同的是,复合函数通过中缀表达式定义的函数,最终实现同参数及返回值的各种函数之间的复合运算。 举个例子,实现复合函数m(x) = f(g(x))的运算函数 //首先自定义函数f(x)和g(x) //g(x) val add5 = {i:Int->i+5} //f(x) val multiplyBy2 = {i:Int -> i*2} //首先在学习复合函数之前,我们实现f(g(x))的运算会使用如下调用 fun main(){ val result = multiplyBy2(add5(8)) //传入参数值8 println(result) } 运行结果 26 下面使用kotlin中复合函数的功能实现该功能: //解析 //infix 是中缀表达式,所以最终调用addThen的时候不需要用function.addThen的方式调用,这里addThen是自定义扩展函数 //关于这里的几个泛型参数P1、P2、R,以m(x) = f(g(x))为例 //P1为原始参数x,P2为g(x),R为最终返回值m(x) //关于Function1<P1,P2> 这里P1为参数

搞懂深度学习到底需要哪些数学知识

蓝咒 提交于 2019-11-26 05:29:47
IT互联网行业有个有趣现象,玩资本的人、玩产品的人、玩技术的人都能很好的在这个行业找到自己的位置并取得成功,而且可以只懂其中一样,不需要懂其余两样。玩技术的人是里面最难做的,也是三者收益最低的,永远都要不停学习,不停把画饼变成煎饼。 在今年5月底,Alphago又战胜了围棋世界冠军柯洁,AI再次呈现燎原之势席卷科技行业,吸引了众多架构师对这个领域技术发展的持续关注和学习,思考AI如何做工程化,如何把我们系统的应用架构、中间件分布式架构、大数据架构跟AI相结合,面向什么样的应用场景落地,对未来做好技术上的规划和布局。 之前发表过一篇文章 《如何用70行Java代码实现深度神经网络算法》 (点击「阅读原文」获得文章),记录了深度神经网络的计算过程和程序实现,本文再进一步研究一下背后的数学原理。 为了彻底理解深度学习,我们到底需要掌握哪些数学知识呢?经常看到会列出一系列数学科目:微积分、线性代数、概率论、复变函数、数值计算等等。这些数学知识有相关性,但实际上这是一个最大化的知识范围,学习成本会非常久,本文尝试归纳理解深度学习所需要的最小化数学知识和推导过程。 (以下根据作者的学习理解整理,有误之处,欢迎专家学者提出指导批评)。 多层神经网络的函数构成关系 多层神经网络从输入层,跨多个隐含层,到最后输出层计算误差,从数学上可以看做一系列函数的嵌套组合而成,上一层函数输出做为下一层函数输入