机器学习|Javascript 机器学习的四个层次

机器学习|Javascript 机器学习的四个层次



机器学习|Javascript 机器学习的四个层次



机器学习|Javascript 机器学习的四个层次



机器学习|Javascript 机器学习的四个层次


Atwood定律说 , 凡是可以用Javascript实现的应用 , 最终都会用Javascript实现掉 。 作为最热门的机器学习领域 , 服务端是Python的主场 , 但是到了手机端呢?Android和iOS里默认都没有Python 。 但是有浏览器的地方就有js , 现在还有个新场景 - 小程序 。
除此之外 , 为了可以在不联网情况下进行训练的 , 也有支持本地框架比如React Native的 。
可以说 , 只要有前端的地方 , 就有机器学习的框架在 。
js唯一的问题在于 , 变化太快 , 每年都有很多新库出现 , 但是也有不少老的库宣布不维护了 。 但是 , 万变不离其宗 , 工具本身虽然经常有变化 , 但是它们的类型是非常稳定的 。
选择机器学习工具的方法论 【机器学习|Javascript 机器学习的四个层次】我们要写机器学习算法 , 需要什么样的工具呢?
机器学习工具可以分为以下四个层次:

层次一:直接服务于具体领域的框架 首先我们需要直接服务于具体领域的框架 , 比如处理CV的 , NLP的 , 推荐算法之类的 。
比如nlp.js , 上一个版本发布在2020年10月 。 nlp.js的代码写起来是这样的:
const { NlpManager= require('node-nlp');const manager = new NlpManager({ languages: ['en'
forceNER: true );// Adds the utterances and intents for the NLPmanager.addDocument('en' 'goodbye for now' 'greetings.bye');manager.addDocument('en' 'bye bye take care' 'greetings.bye');manager.addDocument('en' 'okay see you later' 'greetings.bye');manager.addDocument('en' 'bye for now' 'greetings.bye');manager.addDocument('en' 'i must go' 'greetings.bye');manager.addDocument('en' 'hello' 'greetings.hello');manager.addDocument('en' 'hi' 'greetings.hello');manager.addDocument('en' 'howdy' 'greetings.hello');// Train also the NLGmanager.addAnswer('en' 'greetings.bye' 'Till next time');manager.addAnswer('en' 'greetings.bye' 'see you soon!');manager.addAnswer('en' 'greetings.hello' 'Hey there!');manager.addAnswer('en' 'greetings.hello' 'Greetings!');// Train and save the model.(async() ={ await manager.train(); manager.save(); const response = await manager.process('en' 'I should go now'); console.log(response);)(); 运行起来很简单 , 装个库就好:
npm install node-nlp 训练的速度也很快:
Epoch 1 loss 0.4629286907733636 time 1msEpoch 2 loss 0.2818764774939686 time 0msEpoch 3 loss 0.16872372018062168 time 0msEpoch 4 loss 0.11241683507408215 time 0ms...Epoch 31 loss 0.00004645272306535786 time 0ms 输出的结果类似这样:
{ locale: 'en' utterance: 'I should go now' settings: undefined languageGuessed: false localeIso2: 'en' language: 'English' nluAnswer: { classifications: [ [Object

entities: undefined explanation: undefinedclassifications: [ { intent: 'greetings.bye' score: 1
intent: 'greetings.bye' score: 1 domain: 'default' sourceEntities: [ { start: 12 end: 14 resolution: [Object
text: 'now' typeName: 'datetimeV2.datetime'
entities: [ { start: 12 end: 14 len: 3 accuracy: 0.95 sourceText: 'now' utteranceText: 'now' entity: 'datetime' resolution: [Object

answers: [ { answer: 'Till next time' opts: undefined{ answer: 'see you soon!' opts: undefined
answer: 'see you soon!' actions: [
sentiment: { score: 0.5 numWords: 4 numHits: 1 average: 0.125 type: 'senticon' locale: 'en' vote: 'positive' 层次二:深度学习框架 第二是我们的核心内容 , 深度学习框架 。