从逻辑编程到机器学习模型编程

来源:互联网 发布:自定义 仅安装windows 编辑:程序博客网 时间:2024/05/16 02:55


因为tensorflow开源后人工智能开始在中国崛起,我才关注机器学习,之前虽然看到大数据机器学习,但是不太关注,比如hadoop,spark。然后开始阅读和学习网上机器学习、深度学习技术资料,虽然看了不少资料,但是还是不太懂,于是开始看书,看p ython,看机器学习,看tensorflow书籍,看了7本,终于有了领悟,从量变到质变。看了七本书,大约370万字,所以现在对机器学习已经知道不少,刚开始看不怎么懂,看到后面越懂越多,开始可以提出一些实现算法,并训练一些数据,看到一些效果。

看懂了机器学习算法,我开始回过去看以前写的程序,无外乎前台界面和后台逻辑,界面差不多就是画图,也可以用代码实现界面,但是逻辑很少,只有后台处理,就是界面后面的逻辑计算,可能编程比较复杂,涉及到逻辑ifelse判断,然后就是加减乘除数学计算,这些都是可以用代码实现的。一个操作系统或者大型程序有几千万行代码,为了把这些代码管理好,采用模块化设计,分门别类,代码太复杂还要进行总体设计和详细设计,然后编译运行,我们说这种程序代码叫逻辑模型,我们是提前知道的,然后才能写成代码运行实现。比如内存管理,任务调度,我们是提前知道算法而且能够编程实现的。


大数据时代机器,人们也是知道模型的,比如线性分类和线性回归,我们通过提取特征,然后进行机器学习,归纳出模型,然后进行预测,比如销售数据,判断这个客户是不是在下次还会购买。这些学习算法通过对数据进行一定算法的处理后得到结论,这些算法包括最近邻knn,概率统计的贝叶斯,决策树,支持向量机svm,pca矩阵分解降维,adaboost集成学习算法,梯度提升树(Gradient Boosting Decison Tree, 以下简称GBDT,二级算法是CART回归树),随机森林(随机构造多棵树后再判断),多层感知机。哪种算法最适合呢?即使同一种算法通过调整不同的参数结果也会不同。所以要学习这些算法才能应用到特征学习。通过计算调整后获得最佳模型,就可以用来预测数据。


如果我们欲先知道这些特征,然后就就可以用机器学习算法训练出预测模型。但是如果不知道特征呢?比如图片和语言文字,谁知道他有什么特征呢?不过人脸识别定位还是需要特征的,否则找不到脸。没有特征的数据训练就需要大量数据,所以图像识别数据很重要。这样的模型需要深度学习,卷积神网络cnn和循环神经网络rnn或者两个都用r-cnn。rnn用lstm长短期记忆预测,跟时间有关。

这样好像开发机器学习模型编程还是比较容易,可是如果不了解机器学习的算法和概念,估计即使你看到代码也不知所以然,更不用说要开发机器学习程序了。所以我觉得拖拉式机器学习开发工具可能没什么用,对处理简单数据可能有效,但是复杂的机器学习就不行了。机器学习编程还要学习python语言,当然也可以用 C++。

我打算以后就从事机器学习研究,可能赚钱呢,而且我觉得机器学习编程能做很多以前逻辑编程不能做的事情,比如图像识别,语音识别,用旧的逻辑编程就不行了,因为你不知道特征,而且语言这东西,如果要整理出所有的语句,然后又能应变复杂改变,参数几十万,写逻辑代码肯定不行,要用多少ifelse判断,一句话,参数太多,而且你还不能知道这些参数怎么填,需要从大数据中训练获得这些参数,这就是机器学习要做的。训练得到的参数就存到模型里,在预测的时候用。


虽然看了几本书,但是还是觉得不够,我决定去人工智能公司上班研究人工智能算法,我决定还要读10机器学习书籍。


机器学习有挑战性,有吸引力,我才是我要去的地方。如果找到工作了,转型算是成功了。


知难而进,找最有挑战的工作,也许会推动人工智能发展也很难说,大家都会用上我的人工智能产品,就像人们以后会用我的操作系统和编译器一样。

原创粉丝点击