市面上的手动机器学习算法多如牛毛,但并没有得到挺好的普及,由于这种算法限制了搜索的空间,好多研究者还是须要自己设计机器学习模型的结构,而微软这次发布的AutoML-Zero搜索空间完全没有限制,可以从最基础的物理公式开始。「新智元招聘主笔、编辑、运营总监、客户总监,添加HR陌陌(Dr-wly)了解详情。」
AutoML企图将特点工程、模型选择、参数调节这种与特点、模型、优化、评价有关的重要步骤进行手动化地学习,致使机器学习模型无需人工干预即可生成。微软此次提出的方式跟往年的有何不同呢?
新方式可手动搜索新算法,仅借助基本的物理公式
Automl-Zero致力手动发觉机器学习算法,从空的或随机的程序开始,只使用基本的物理运算。它可以同时无偏好地搜索机器学习算法的所有方面,包括模型结构和学习策略。
虽然Automl-Zero的搜索域很广,但进化搜索看上去表现不错,通过搜索发觉了线性回归、带有反向传播的单层神经网路,甚至是超过手工设计的复杂度相当的基线算法。
里面的图显示了我们实验中的一个反例,可以看见演变算法是怎样来一步步解决二分类任务的。首先是个线性模型,没有任何优化方式,之后逐渐发觉了SGD来进行优化,接着开始加入随机的学习率,再往前发觉了ReLU激活函数,随机权重初始化,梯度归一化等等,越来越接近我们手工设计的网路结构和优化方式。
几乎从零开始,跟传统的组装型手动机器学习区别很大
我们手工打造一个典型的机器学习模型,要经过以下几个步骤,数据预处理、模型建立、学习、预测数学公式编辑器3.0下载,而AutoML-Zero的工作原理,可以简单理解为将各个步骤涉及的基本物理方式置于一个篮子里,之后随机从篮子取出置于对应的步骤,借助进化搜索,不断得到最优的组合。
AutoML-Zero跟之前的手动机器学习有哪些优缺呢?之前的手动学习主要集中在体系结构上,它依赖于专家设计的复杂层作为建立块——或类似的限制性搜索空间。我们的目标是证明AutoML可以走得更远:只需使用基本的物理运算作为建立块,来发觉一个完整的机器学习方式,我们通过引入一个新的框架来证明这一点,在这个搜索空间中可以明显减轻人类经验的偏见,发觉一些有趣的东西。
我们用auto-sklearn来解释下传统的手动机器学习所使用的方式,对细节感兴趣的朋友可以看下这篇论文。
作者开发了一个基于scikit-learn的强悍的新AutoML系统(使用15个分类器,14个特点预处理方式和4种数据预处理方式,进而形成具有110个超参数的结构化搜索空间)。这个系统是在有限的参数空间中数学公式编辑器3.0下载,通过手动对比在类似数据集上的性能,以及评估那些手动构造的模型性能,来实现手动搜索最优的机器学习技巧。
怎样用Python实现传统的AutoML
到这儿你应当理解了,AutoML-Zero的普适性更强一些,可以发觉未知的机器学习方式,而auto-sklearn只是在现有的结构和参数中手动找到最优的。
我们用Python来举个简单的事例:
importautosklearn.classificationimportsklearn.model_selectionimportsklearn.datasetsimportsklearn.metricsX,y=sklearn.datasets.load_digits(return_X_y=True)X_train,X_test,y_train,y_test=sklearn.model_selection.train_test_split(X,y,random_state=1)AutoML=autosklearn.classification.AutoSklearnClassifier()AutoML.fit(X_train,y_train)y_hat=AutoML.predict(X_test)print(“Accuracyscore”,sklearn.metrics.accuracy_score(y_test,y_hat))
假如想亲自动手实验的话可以安装Anaconda,它集成了所须要的大部份Python科学估算库,之后通过conda安装auto-sklearn。