美文网首页
浅谈机器学习

浅谈机器学习

作者: 天下林子 | 来源:发表于2020-10-22 18:05 被阅读0次

前言:

机器学习,从某种意义上来说,就是一种实现人工智能的方法。与我们传统的为解决特定任务而进行的硬编码的软件程序不同,机器学习是通过使用大量的数据进行训练,通过各种算法从数据中学习,来达到完成目的任务的。
简单而言,就是:
数据->算法->模型; 需要判断的数据->模型->给出预测
即,使用大量的数据,通过一定的算法来生成一项数据模型;一旦数据模型生成成功后,就可以利用它来对需要判断的数据给出相应的预测了。

iOS下的机器学习

以上我们简单了解了一下机器学习的一个主要的过程。而事实上,通过特定算法,使用大量数据来进行模型生成的这个过程,是非常地消耗计算和存储资源的;特别是现在的一些特大规模的神经网络,一般单个的普通机器根本扛不住,甚至连跑都跑不起来。

因此在这样一种情况下,根本不能奢侈训练这样一个过程能够在iOS设备上进行,更多的情况我们都是放在后端的HBase、Cassandra这种数据库中,然后再通过诸如Caffe, Scikit-Learn, Tensorflow这些来进行相应的训练,最后生成我们想要的模型。拿到模型后,对于数据的判断,移动端的设备似乎就能够做一些力所能及之事了。

而对于iOS 11 的Core ML,正是这样一个存在。它提出了一个模型构造的标准,让移动端开发者不用过于关心模型内部的实现细节,而只关注其输入和输出的参数,就达到了使用机器学习的目的。事实上个人在模型使用的过程中,它更像是一个函数或者一个类的使用;而就是这样一些简单的函数调用

现在有2种常用的框架

  1. Core ML
  2. Vision

ps: Core ML 让我们更容易在 App 中使用训练过的模型。
Vision 让我们轻松访问苹果的模型,用于面部检测、面部特征点、文字、矩形、条形码和物体。

Core ML

  • Core ML 是苹果在2018年的 WWDC 开发者大会上推出的机器学习框架。它能够让开发者以尽可能简单的方式将 AI(人工智能)模型以各种不同的格式,集成到自己的应用中去,让它们实现计算机视觉、自然语言识别、图案识别等高级功能,而开发者本人不需要很多的 AI 相关知识。
  • 使用Core ML, 你可以将训练有素的机器学习模型集成到应用程序中,
image.png

一个训练有素的模型是将机器学习算法来训练数据集合的结果。该模型基于新的输入数据进行预测。例如,根据某个地区的历史房价进行培训的模型可能能够在给予卧室和浴室的数量时预测房子的价格。核心ML是域特定框架和功能的基础。核心ML支持视觉图像分析,基金自然语言处理(例如类),并GameplayKit评估学会决策树。核心ML本身建立在诸如Accelerate
和BNNS以及Metal Performance Shader之类的低级原语之上。NSLinguisticTagger


image.png

Core ML针对设备性能进行了优化,最大限度地减少了内存占用和功耗。严格按照设备运行确保用户数据的隐私,并确保您的应用程序在网络连接不可用时保持功能和响应。

使用 Create ML 的流程如下:

1.确认场景。在使用 Create ML 前,我们必须确定当前问题可以用机器学习来解决:即问题对应的数据存在关联和规律。例如某电商网站通过分析用户特征和历史数据来判断其购物偏好,这类问题就可以机器学习解决;而诸如通过收集彩票中奖历史记录来预判下一期中奖号码则不可以通过机器学习解决,因为彩票开奖是随机的,其历史记录并无规律。

2.收集数据。这一步骤中,开发者不仅需要收集大量的训练数据,还要收集部分测试数据。目前 Create ML 支持三种类型的数据:图片、文字、表格。其中图片对应的模型 API 是 MLImageClassifier,而后两者则对应MLTextClassifier (对一大段文字进行分析)和 MLWordTagger(对单个单词进行分析)。

3.训练模型。目前 Create ML 提供两种训练模型方式:拖拽和代码形式。拖拽是这样完成的:在 Playground 中可以用 LiveView 直接打开训练的 UI 界面,然后将准备好的训练数据放入对应的训练框中,Playground 就自动开始训练模型了。代码形式则是调用相应的 API 进行操作,我们会在稍后详谈。

4.评估模型。具体步骤和训练模型类似。差别在于这次用的是测试数据,我们会根据测试数据返回的准确度去判断模型的可靠性。上图中我们可以看到,在测试数据评估之后,水果分类模型的准确度为92%。

5.保存模型。在 UI 界面中可以直接拖拽模型将其保存在桌面或其它位置。若是 API 操作,可以手动指定存储路径,再将其保存。

Core ML 支持什么模型?

Core ML 可以处理几种不同类型的模型,如下

  • 支持向量机 SVM
  • 诸如随机森林和提升树的决策树集成
  • 线性回归和 logistic 回归
  • 前馈神经网、卷积神经网、递归神经网

所有这些模型都可以用于回归问题和分类问题。此外,你的模型可以包含这些典型的机器学习预处理操作,例如独热编码(one-hot encoding)、特征缩放(feature scaling)、缺失值处理等等。
Apple还提供了很多已经训练好的模型 点我例如: Inception v3、ResNet50 和 VGG16 等,你也可以使用Core ML Tools 这个Python库来转换自己的模型。
目前,你可以转换使用 Keras、Caffe、scikit-learn、XGBoost 和 libSVM 训练的模型。转换工具只会支持具体指定的版本,比如 Keras 支持 1.2.2 但不支持 2.0。辛运的是,该工具是开源的,所以毫无疑问它将来会支持更多的训练工具包。

如果这些都不行,你还是可以随时编写自己的转换器。mlmodel 文件格式是开源且可以直接使用的(由 Apple 制定发布的一种 protobuf 格式)

官方模型的使用

苹果官网提供了几个比较常见的模型
https://developer.apple.com/machine-learning/models/
我们可以下载使用

image.png
模型被包含在了一个 .mlmodel 的文件中。这是一种新的开源文件格式,用于描述模型中的 layer、输入输出、标签,以及需要在数据上产生的任何预处理过程。它还包括了所有的学习参数(权重和偏置)。

使用模型所需的一切都在这一个文件里面了。

你只需要将 mlmodel 文件放入你的项目中,Xcode 将会自动生成一个 Swift 或 Objective-C 的包装类,使你能简单的使用这个模型。

举个例子,如果你把文件 ResNet50.mlmodel 添加到你的 Xcode 项目中,那么你就可以这么写来实例化这个模型:

//1.构建
let model = ResNet50()

//2.做出预测
let pixelBuffer: CVPixelBuffer = /* your image */if let prediction = try? model.prediction(image: pixelBuffer) {
  print(prediction.classLabel)
}

这差不多就是所有要写的东西了。你不需要编写任何代码来加载模型,或者将其输出转换成可以从 Swift 直接使用的内容 —— 这一切都将由 Core ML 和 Xcode 来处理。

Core ML 将决定自己到底是在 CPU 上运行还是 GPU 上运行。这使得它能够充分的利用可以用的资源。Core ML 甚至可以将模型分割成仅在 GPU 上执行的部分(需要大量计算的任务)以及 CPU 上的其他部分(需要大量内存的任务)。

* 代码示例

核心代码:


lazy var classificationRequest: VNCoreMLRequest = {
        do {
            /*
             Use the Swift class `MobileNet` Core ML generates from the model.
             To use a different Core ML classifier model, add it to the project
             and replace `MobileNet` with that model's generated Swift class.
             */
            let model = try VNCoreMLModel(for: MobileNet().model)
            
            let request = VNCoreMLRequest(model: model, completionHandler: { [weak self] request, error in
                self?.processClassifications(for: request, error: error)
            })
            request.imageCropAndScaleOption = .centerCrop
            return request
        } catch {
            fatalError("Failed to load Vision ML model: \(error)")
        }
    }()
    
    
image.png

banana 香蕉
pitcher投手 ewer 大口水壶
flowerPot. 花盘


image.png

创建自己的Core ML 工程

  1. 在官网下载模型,然后创建xcode工程,将模型拉到自己项目中


    image.png

选择YOLOv3Tiny.mlmodel文件,然后等一会儿。Xcode 生成了模型类后会显示一个箭头:


image.png

查看生产的类
Xcode 已生成了输入和输出类以及主类 YOLOv3Tiny.swift,主类有一个 model 属性和两个 prediction 方法。

YOLOv3TinyInput 有一个 CVPixelBuffer 类型的 sceneImage 属性。哭了,这些都是什么鬼?!不要害怕,Vision 框架会负责把我们熟悉的图片格式转换成正确的输入类型。:]

Vision 框架还会把 YOLOv3TinyOutput 属性转换为自己的 results 类型,并管理对 prediction 方法的调用,所以在所有生成的代码中,我们只会使用 model 属性。

在 Vision Model 中包装 Core ML Model


image.png
  1. 获取 Core ML 模型

extension ViewController {

  func detectScene(image: CIImage) {
    answerLabel.text = "detecting scene..."
  
    // 从生成的类中加载 ML 模型
    guard let model = try? VNCoreMLModel(for: GoogLeNetPlaces().model) else {
      fatalError("can't load Places ML model")
    }
  }
}

  1. 创建请求
// 创建一个带有 completion handler 的 Vision 请求
let request = VNCoreMLRequest(model: model) { [weak self] request, error in
  guard let results = request.results as? [VNClassificationObservation],
    let topResult = results.first else {
      fatalError("unexpected result type from VNCoreMLRequest")
  }

  // 在主线程上更新 UI
  let article = (self?.vowels.contains(topResult.identifier.first!))! ? "an" : "a"
  DispatchQueue.main.async { [weak self] in
    self?.answerLabel.text = "\(Int(topResult.confidence * 100))% it's \(article) \(topResult.identifier)"
  }
}

  1. VNCoreMLRequest 是一个图像分析请求,它使用 Core ML 模型来完成工作。它的 completion handler 接收 request 和 error 对象。检查 request.results 是否是 VNClassificationObservation 对象数组,当 Core ML 模型是分类器,而不是预测器或图像处理器时,Vision 框架就会返回这个。而 YOLOv3Tiny 是一个分类器,因为它仅预测一个特征:图像的场景分类。

VNClassificationObservation 有两个属性:identifier - 一个 String,以及 confidence - 介于0和1之间的数字,这个数字是是分类正确的概率。使用对象检测模型时,你可能只会看到那些 confidence 大于某个阈值的对象,例如 30% 的阈值。
然后取第一个结果,它会具有最高的 confidence 值,然后根据 identifier 的首字母把不定冠词设置为“a”或“an”。最后,dispatch 回到主线程来更新 label。你很快会明白分类工作为什么不在主线程,因为它会很慢


func configureImage22(image: CIImage){
        showLabel.text = "detecting scence..."
        guard let model = try? VNCoreMLModel(for: YOLOv3Tiny().model) else {
            fatalError("can not load ML model")
        }
        
        // 创建请求
        let request = VNCoreMLRequest(model: model) { [weak self] request, error in
            guard let results = request.results as? [VNClassificationObservation],
                let topResult = results.first else {
                    fatalError("  从 VNCoreMLRequest 获取不到 ")
            }
            
            //更新UI
            let article = (self?.vowels.contains(topResult.identifier.first!))! ? "an" : "a"
            DispatchQueue.main.async {[weak self] in
                self?.showLabel.text = "\(Int(topResult.confidence * 100)) % it is \(article) \(topResult.identifier)"
            }
        }
        
        let  handler = VNImageRequestHandler(ciImage: image)
        DispatchQueue.global(qos: .userInteractive).async {
            do{
                try handler.perform([request])
            } catch {
                print(error)
            }
        }
        
    }
    
  1. VNImageRequestHandler 是标准的 Vision 框架请求处理程序;不特定于 Core ML 模型。给它 image 作为 detectScene(image:) 的参数。然后调用它的 perform 方法来运行处理程序,传入请求数组
// 在主线程上运行 Core ML GoogLeNetPlaces 分类器
let handler = VNImageRequestHandler(ciImage: image)
DispatchQueue.global(qos: .userInteractive).async {
  do {
    try handler.perform([request])
  } catch {
    print(error)
  }
}

效果如下:


image.png image.png
Core ML的局限性
  • 设备上不能进行训练。你需要使用离线工具包来进行训练,然后将它们转换到 Core ML 格式。
  • Core ML 转换工具只支持特定版本的数量有限的训练工具。例如,如果你在 TensorFLow 中训练了一个模型,则无法使用此工具,你必须编写自己的转换脚本。正如我刚才提到的:如果你的 TensorFlow 模型具有一些 mlmodel 不支持的特性,那么你就不能在 Core ML 上使用你的模型。
  • 你不能查看中间层的输出,只能获得最后一层网络的预测值。

Vision

Vision可以让你执行计算机视觉任务,可执行的任务有以下几种:
在图像中寻找人脸,然后对每个脸给出一个矩形框
寻找面部的详细特征,比如眼睛和嘴巴的位置,头部的形状等等
寻找矩形形状的图像,比如路标
追踪视频中移动的对象
确定地平线的角度
转换两个图像,使其内容对齐,这对于拼接照片非常有用
检测包含文本的图像中的区域
检测和识别条形码。

Core Image和AVFoundation 已经可以实现其中的一些任务,但是现在他们都集成在一个具有一致性API的框架内了
如果你的应用程序需要执行这些计算机视觉任务之一,再也不用跑去自己实现或使用别人的库了 - 只需使用 Vision 框架。你还可以将其与 Core Image 框架相结合,以获得更多的图像处理能力。

更好的是:你可以使用 Vision 驱动 Core ML,这允许你使用这些计算机视觉技术作为神经网络的预处理步骤。例如,你可以使用 Vision 来检测人脸的位置和大小,将视频帧裁剪到该区域,然后在这部分的面部图像上运行神经网络。
核心代码如下:


// Core ML 机器学习模型
let modelCoreML = ResNet50()

// 将 Core ML 模型连接到 Vision
let visionModel = try? VNCoreMLModel(for: modelCoreML.model)

let classificationRequest = VNCoreMLRequest(model: visionModel) { 
  request, error in
  if let observations = request.results as? [VNClassificationObservation] {
    /* 利用预测完成任务 */
  }
}

let handler = VNImageRequestHandler(cgImage: yourImage)
try? handler.perform([classificationRequest])

事实上,任何时候当你结合图像或者视频使用 Core ML 时,使用 Vision 都是合理的。原始的 Core ML 需要你确保输入图像是模型所期望的格式。如果使用 Vision 框架来负责调整图像大小等,这会为你节省不少力气。

Vision 使计算机视觉变得非常容易使用。 但对我们机器学习人员很酷的事情是,你可以将这些计算机视觉任务的输出输入到你的 Core ML 模型中。 结合 Core Image 的力量,批量图像处理就跟玩儿一样!

训练机器学习模型

1.人的身体的各个属性往往存在联系,身高高的人体重往往会重一些。
这里是一份人的身体数据,它包括了性别、身高和体重三列。我们将用这份数据来训练一个机器学习模型,让他可以根据人的性别和身高预测他的体重。数据详见Data.csv


image.png
  1. 下载Anaconda的Python2.7版本,Anaconda包括了以上所有要用到的东西,还附带了别的科学计算用的库,同时它还提供了一系列库管理的功能,你值得拥有,然后上代码

# //导入要用到的库
from sklearn.linear_model import LinearRegression
import pandas as pd
# 用pandas库把Data.csv文件里的内容读出来
full_data = pd.read_csv("Data.csv")
model = LinearRegression()
# 创建一个线性回归的模型,调用它的fit方法训练它,注意我们要用性别和身高预测体重,
# 所以fit方法的第一个参数是性别和身高,第二个参数是体重
model.fit(full_data[['Gender', 'Height']], full_data["Weight"])
print("编译成功拉~~~~")
# 预测身高172cm男性的体重
# 推测体重是66.811415kg。
# 根据生成数据的逻辑,172cm的男性的体重应该是67kg,与预测的情况基本一致。
# [67.10708506]
print(model.predict([[1, 172]]))

#model就是我们在Python里的模型对象,下面我们把它转化成Core ML要用的mlmodel格式

import coremltools
coreml_model = coremltools.converters.sklearn.convert(model, ["gender", "height"], "weight")

coreml_model.author = "test"
coreml_model.license = "BSD"
coreml_model.short_description = 'Predicts weight by gender and height'

coreml_model.input_description['gender'] = "Gender: 0 for male; 1 for female."
coreml_model.input_description['height'] = 'Height in cm'
coreml_model.output_description['weight'] = 'weight in kg'
coreml_model.save('PredictWeight.mlmodel')


大部分代码都是用来填写模型的描述信息的,真正做转换工作的只有convert和save两行。,转换成mlmodel模型之后,就可以直接通过Xcode进行项目创建

Kaggle网站上有个很合适的练习。这个练习提供了一份泰坦尼克号上乘客的名单,包括了乘客的个人信息:性别、年龄、在哪上的船、社会阶层、船票的价格等等等等。我们要做的,是根据这些已知的乘客信息,在判断一个新的乘客是不是会在这个灾难后存活。如果你有兴趣,你还可以好好逛逛Kaggle,这里有非常多的问题和数据,甚至还有一些带有悬赏的比赛,你也可以找一个你感兴趣的开始你的研究。

如何在Xcode中训练您自己的机器学习模型
image.png
  1. 图片分类器模型

我们将首先开始构建一个图像分类器模型。我们可以添加任意多的标签,但是为了简单起见,我们将构建一个识别水果为苹果或香蕉的图像分类器。你可以在这里下载图片。

打开文件夹时,您将注意到另外两个文件夹:训练数据和测试数据。每个文件夹都有苹果和香蕉的混合图片。有大约20张苹果图片和20张香蕉图片,分别被称为测试数据和80张苹果图片和80张香蕉图片。我们将在训练数据中使用图像来训练分类器,然后使用测试数据来确定其准确性。

image.png

2.Xcode 创建项目


image.png

ps:创建Playground 选择 macOS 因为iOS平台不支持CreateML框架,然后创建
确保在Xcode playground中启用Live View特性,您将能够看到可视化界面!
CreateMLUI是一个与CreateML类似的框架,但它有一个UI。到目前为止,CreateMLUI只能用于图像分类.

在实时视图中,您将看到我们需要删除图像以开始!这是相当简单的。获取培训数据文件夹,并将整个文件夹放入该区域。

image.png

当你放下文件夹的时候,你会看到playground开始训练图像分类器!在控制台中,您将看到在什么时间处理图像的数量,以及您的数据被训练的百分比!

ps:报错 Folders of training data must be labeled by directory or filename.
放文件夹的时候要将Training Data 这个文件夹放进去,这样就可以了
当你放下文件夹的时候,你会看到playground开始训练图像分类器!在控制台中,您将看到在什么时间处理图像的数量,以及您的数据被训练的百分比!

image.png

您将看到一张卡片,上面有三个标签:培训、验证和评估。培训是指Xcode成功培训的培训数据的百分比。这应该读100%。

图像处理|经过的时间| %完成
Analyzing and extracting image features.
+------------------+--------------+------------------+
| Images Processed图像处理 | Elapsed Time经过的时间 | Percent Complete 完成%|
+------------------+--------------+------------------+
| 1 | 5.68s | 0.75% |
| 2 | 5.82s | 1.75% |
| 3 | 5.88s | 2.75% |
| 4 | 6.00s | 3.5% |
| 5 | 6.05s | 4.5% |
| 10 | 6.31s | 9.25% |
| 50 | 8.92s | 46.5% |
| 100 | 11.87s | 93.25% |
| 107 | 12.24s | 100% |
+------------------+--------------+------------------+
Extracting image features from user validation data.
Analyzing and extracting image features.
+------------------+--------------+------------------+
| Images Processed | Elapsed Time | Percent Complete |
+------------------+--------------+------------------+
| 1 | 48.906ms | 7% |
| 2 | 96.744ms | 14.25% |
| 3 | 144.861ms | 21.25% |
| 4 | 198.63ms | 28.5% |
| 5 | 249.463ms | 35.5% |
| 10 | 492.368ms | 71.25% |
| 14 | 806.019ms | 100% |
+------------------+--------------+------------------+
Beginning model training on processed features.
Calibrating solver; this may take some time.

+-----------+--------------+-------------------+---------------------+
| Iteration迭代 | Elapsed Time运行时间 | Training Accuracy训练精度 | Validation Accuracy验证精度 |
+-----------+--------------+-------------------+---------------------+
| 0 | 0.092847 | 0.570093 | 0.500000 |
| 1 | 0.165168 | 0.878505 | 0.785714 |
| 2 | 0.211065 | 0.943925 | 0.857143 |
| 3 | 0.255968 | 0.981308 | 1.000000 |
| 4 | 0.296840 | 1.000000 | 1.000000 |
| 9 | 0.524133 | 1.000000 | 1.000000 |
+-----------+--------------+-------------------+---------------------+

++++++++++++

3.保存
如果你对你的结果满意,剩下的就是保存文件了!单击图像分类器标题旁边的箭头。应该出现一个下拉菜单,显示所有的元数据。将元数据更改为您想要的方式,并将其保存到您想要的位置!

image.png
image.png

你可以把它导入你的iOS应用程序,看看它是如何运行的!接下来,让我们看看如何创建自己的文本分类器。这需要更多的代码!

表格式分类器模型

表格数据是关于创建ML最先进和有趣的特性之一,通过观察表中的一系列特性,创建ML可以检测模式并创建分类器来检测您想要的目标特性。

在这种情况下,让我们来处理机器学习世界中最流行的数据集之一——房价!更有趣的是,数据集不是JSON格式,而是CSV格式!

image.png

参数说明:

  • RM: 每个住宅的平均房间数

  • LSTAT: 人口中被认为地位较低的百分比

  • PTRATIO: 城镇学生与学生的比率

  • MEDV: 自住房屋的中位数

我们将使用3个特性(RM, LSTAT, PTRATIO)来计算最终的价格(MEDV)!
核心代码如下:


//1
/**
 1. 首先,我们创建一个名为data的常量,它是垃圾邮件的一种MLDataTable。json文件。MLDataTable是一个全新的对象,用于创建一个决定训练或评估ML模型的表。我们将数据分为trainingData和testingData。和以前一样,比率是80-20,种子是5。种子是指分类器的起点。然后我们用我们的训练数据定义一个叫做spamClassifier的MLTextClassifier,定义数据的值是文本,什么值是标签。
 */
let houseData = try MLDataTable(contentsOf: URL(fileURLWithPath: "/Users/sfyh/Desktop/训练模型/HomeDataTraining/HouseData.csv"))

let (trainingCSVData, testCSVData) = houseData.randomSplit(by: 0.8, seed: 0)

//2
/**
 创建了两个变量,名为trainingAccuracy和validationAccuracy,用于确定分类器的准确程度。在侧窗格中,您可以看到百分比
 */
let pricer = try MLRegressor(trainingData: houseData, targetColumn: "MEDV")

//3
/**
 我们还检查评估的执行情况。请记住,评价是分类器以前没有看到的文本上使用的结果,以及它们的准确性
 */
let csvMetadata = MLModelMetadata(author: "天下林子", shortDescription: "A model used to determine the price of a house based on some features.", version: "1.0")

//try pricer.write(to: URL(fileURLWithPath: "/Users/Path/To/Write/HousePricer.mlmodel"), metadata: csvMetadata)
//4.  保存
try pricer.write(toFile: "/Users/sfyh/Desktop/训练模型", metadata: csvMetadata)

TensorFlow

image.png

Google 开源的深度学习框架 tensorflow 成为2016年最受欢迎的深度学习框架之一。tensorflow 除了支持 pc 端外,还较好的支持了 iOS,android 移动端平台。

Tensorflow是Google推出的人工智能框架,而Core ML是苹果推出的人工智能框架,两者是有很大的区别,其中Tensorflow是包含了训练模型和评估模型,Core ML只支持在设备上评估模型,不能训练模型。
通常而言我们通过Tensorflow训练模型,导出我们训练的模型pb,然后转换了Core ML的格式mlmodel,从而实现在iOS实现评估模型。
tensorflow 在 iOS 平台上的应用

机器学习新工具 Create ML App

1.打开Xcode 如下:


image.png

打开之后会误导你要打开一个文件夹,真是找的我好苦,点击 New Document 就会看到如下界面

image.png image.png

然后,你就可以选择模型类型并导入数据。选择模型类型为图片分类器,输入名称并保存。接着将准备好的训练数据(花朵图片)导入 Create ML App 中,这里可以直接拖拽,也可以通过左上角文件菜单导入

训练模型。点击左上角运行按钮,Create ML 一键训练并生成花朵图片分类器模型,期间我们能看到模型的训练进度、对于不同花朵图片的分类情况

image.png

在选择文件夹的时候一定要一个文件夹下面有2个不同文件夹,这2个文件夹中装的图片要不同类型,否则会报错,然后点击training,就会看到下面进度


image.png

整个操作无需任何编程,即使是几百张图片也只需几秒钟即可生成对应模型。不仅如此,新的 Create ML App 提供的信息相比于之前的 Playground,也更加丰富、精确、简洁。

深度学习

想了解,点我

本文相关代码链接

相关文章

  • 浅谈语音识别基础

    承接前面的《浅谈机器学习基础》、《浅谈深度学习基础》和《浅谈自然语言处理基础》,主要参考了《解析深度学习:语音识别...

  • 知识链接

    · APT攻击: 《What's APT: 浅谈APT攻击》- 安全客 · 机器学习: 《浅谈人工智能:现状、任务...

  • 浅谈深度学习基础(上)

    第二个Topic讲深度学习,承接前面的《浅谈机器学习基础》。 深度学习简介 前面也提到过,机器学习的本质就是寻找最...

  • 浅谈自然语言处理基础(上)

    本系列第三篇,承接前面的《浅谈机器学习基础》和《浅谈深度学习基础》。 自然语言处理绪论 什么是自然语言处理? 自然...

  • 浅谈线性回归

    浅谈LR 背景 机器学习 套路:学习过程:Input -> Model新数据,应用模型,得到结果。例子:分类输入:...

  • 浅谈机器学习

    前言 借这篇文章谈一谈机器学习,通过自上而下的方式去构建整个机器学习系统,尽可能做到深入浅出,集中展现机器学习构建...

  • 浅谈机器学习

    前言: 机器学习,从某种意义上来说,就是一种实现人工智能的方法。与我们传统的为解决特定任务而进行的硬编码的软件程序...

  • 浅谈机器学习算法

    关于机器学习的文章,在之前的学习过程中写过几篇,但现在看来实在有点误人子弟了.....(别喷我,毕竟我当时一个小白...

  • 浅谈数据挖掘(概论)

    浅谈数据挖掘(概论) 前言:学习资料的来源均出自,《图解机器学习》-杉山将,中国工信出版集团。《数据挖掘导论》-戴...

  • 2018-03-19 hash trick

    hash trick在机器学习中的使用特征哈希干货 | 自然语言处理(2)之浅谈向量化与Hash-Trick

网友评论

      本文标题:浅谈机器学习

      本文链接:https://www.haomeiwen.com/subject/rzdpmktx.html