我希望分享一些偏技术性的干货。作为一名工科博士生,昨天在一个线下交流群中讨论了大约6个小时这一代人工智能的关键技术原理,在这里与大家分享,我认为自己掌握人工智能解决实际问题已经很容易了,具体步骤如下:
1.数学基础:
1.1线性代数的加减乘除运算表示,(特征根与特征向量作为提高要求,非必须)
1.2最优化理论,知道目标函数,约束,优化过程大体原理即可,不需深入掌握。
2.编程基础:
2.1python,大家普遍提及的tensorflow就是基于python,只许简单掌握条件语句,循环语句即可,剩下的想用的时候再查。
2.2tensorflow,真是越来越亲民了,现在windows平台也支持了。
2.3keras,是tensorflow上层的封装,目的是使得代码更加简单易学,并且省去了大量调参操作,新手必备。
2.4sklearn,大多数机器学习方法,sklearn上都有实现,调用程序即可,代码极为简单。
3.理论基础:
这里指机器学习的理论,讲四个我认为最重要的。
3.1CNN
深度学习中应用最广泛的一种网络,理解起来不难,唯一难点是这里需要稍稍理解一下卷积运算。
3.2LSTM
深度学习的一种网络,用来处理时序信号,网络设计能够记忆较长时间之前的输入,这样就相当于网络有了记忆。
3.3Xgboost
目前在有监督学习领域,除了深度神经网络之外,就是Xgboost最好,这个需要现行学习决策树理论,也要对优化理论有一定了解,属于稍难理解一些的方法。
3.4增强学习
这个最难理解,需要了解马尔科夫链,以及最优化理论,这个坑很深,但个人认为用处最大,打败李世石用的主要就是这个。值得深入学习。
4.学习方法:
谷歌,百度
youtube上有视频演示,容易理解
有能力看论文的,可以搜论文看
我涉及人工智能技术不到一年,总体体会是,想应用,门槛很低,想进行底层理论创新,还是比较难的,因为有太多的封装,应用便捷了,但人就懒得创新了。
希望对想进行深入技术学习的人有所帮助。