通过简单实践理解机器学习概念(flux.jl)
jake484
于 2021-09-17 10:48:37 发布 104

文章标签: 神经网络 机器学习
版权
Flux.jl简介
Flux是什么

Flux 是一个纯 Julia ML 堆栈,可让通过机器学习相关算法构建预测模型。
怎样构建

提供训练和测试数据
构建具有可配置参数的模型以进行预测
通过调整参数来迭代训练模型以改进预测
验证模型

实例

假设一个预测目标: y = x + 1 y = x + 1 y=x+1

using Flux
f(x) = x + 112f (generic function with 1 method)

获得训练数据与测试数据

x_train = [0 1 2 3 4]
y_train = f.(x_train)x_test = [5 6 7 8 9]
y_test = f.(x_test)12345

构建预测模型

model = Dense(1, 1) #构建训练模型1

Dense可以视为神经网络,第一个参数为输入量个数,第二个参数为输出量个数。所以上面构建的为一个输入量与一个输出量(和预测目标相符)

model.weight #权重11×1 Matrix{Float32}:-1.0748355

这是自动初始化的结果

model.bias   #偏量11-element Vector{Float32}:0.0predict = model1

这是因为Dense(1, 1)实现了功能σ(Wx+b),例如:

predict(x_train)11×5 Matrix{Float32}:1.07484 0.0 -1.07484 -2.14967 -3.22451

相当于是x前面的系数为权重的线性方程。

接下来设置损失函数,使用均方差mse

loss(x,y)= Flux.Losses.mse(predict(x),y)1

可以看一下现在的loss

loss(x_train, y_train)118.064499

接下来设置训练数据与训练参数

data = [(x_train, y_train)]
parameters = params(predict)12Params([Float32[-1.0748355], Float32[0.0]])

此时参数就是权重与偏量
训练

通过train!来训练,训练后查看loss

train!(loss, parameters, data, opt)
loss(x_train, y_train)121.8237922

好像还不错?再看看测试集的结果怎么样

predict(x_test)11×5 Matrix{Float32}:2.09523 2.4653 2.83536 3.20543 3.57549

额,确实不咋地。因为我们期望的结果是y_test,也就是
[5 6 7 8 9],为什么呢?因为才训练了一次而已。多整几次!
改进预测

训练个200次

for i in 1:200train!(loss, parameters, data, opt)println(loss(x_train, y_train))
end1234

最后一行结果是:3.9790393e-14,这个loss确实可以
验证

最后看一下参数

parameters1Params([Float32[1.0000001], Float32[0.99999976]])

是不是就是: y = x + 1 y=x+1 y=x+1

看看测试集的结果怎么样

predict(x_test)11×5 Matrix{Float32}:5.0 6.0 7.0 8.0 9.0

————————————————
版权声明:本文为CSDN博主「jake484」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jake484/article/details/120344229

Julia: 通过简单实践理解机器学习概念(flux.jl)相关推荐

  1. 通过简单的线性回归理解机器学习的基本原理

    在本文中,我将使用一个简单的线性回归模型来解释一些机器学习(ML)的基本原理.线性回归虽然不是机器学习中最强大的模型,但由于容易熟悉并且可解释性好,所以仍然被广泛使用.简单地说,线性回归用于估计连续或 ...

  2. 从零实现来理解机器学习算法:书籍推荐及障碍的克服

     从零实现来理解机器学习算法:书籍推荐及障碍的克服 发表于2015-09-10 16:16| 1261次阅读| 来源Machine Learning Mastery| 2 条评论| 作者Jason ...

  3. 【华为云技术分享】深度理解AI概念、算法及如何进行AI项目开发

    莫衷一是的AI 做了多年的业务工作,一直希望能够用机器代替人力,把人从繁琐的具体工作中解放出来,从技术发展看AI或许可以支撑实现这个愿景. 但最近关于AI的讨论和争论比较多,学术上,纽约大学的Gary ...

  4. 深入理解机器学习——集成学习(Ensemble Learning):基础知识

    分类目录:<深入理解机器学习>总目录 集成学习基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好.实际上,就是" ...

  5. 深度学习之感性理解-机器学习基础一

    深度学习之感性理解-机器学习基础一 机器学习是什么 机器学习用来干嘛的 机器学习是怎么做的 机器学习是什么 关于机器学习的定义,网上很多,我就不多说了,谈谈自己的理解.简单的说就是有一个事情想让计算机 ...

  6. 【图解】算法原理!通俗理解机器学习算法

    机器之心报道 机器之心编辑部 算法公式挺费神,机器学习太伤人.任何一个刚入门机器学习的人都会被复杂的公式和晦涩难懂的术语吓到.但其实,如果有通俗易懂的图解,理解机器学习的原理就会非常容易.本文整理了一 ...

  7. 365个机器学习概念,“耐撕”的AI日历限量预售 | 新年礼物嗷~

    圣诞节到了,新的一年就不远了. 2018年新年立下的flag实现了吗?开始学习一门语言?跑一次马拉松?又或者,入门机器学习? 如果你的新年愿望是离AI更近一点,那么,我们为你准备的这套新年礼物--AI ...

  8. 你真的理解机器学习中偏差 - 方差之间的权衡吗?

    作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 简书地址:http://www.jianshu.com/p/f143... 我认为对偏差 - 方差之间的 ...

  9. 深入理解机器学习——机器学习概览

    分类目录:<深入理解机器学习>总目录 机器学习算法是一种能够从数据中学习的算法.卡耐基梅隆大学计算机科学学院机器学习系主任Mitchell给出了机器学习算法的定义:对于某类任务TTT和性能 ...

  10. 深入理解机器学习——概率图模型(Probabilistic Graphical Model):马尔可夫随机场(Markov Random Field,MRF)

    分类目录:<深入理解机器学习>总目录 马尔可夫随机场(Markov Random Field,MRF)是典型的马尔可夫网,这是一种著名的无向图模型,图中每个结点表示一个或一组变量,结点之间 ...

最新文章

  1. Silverlight WCF RIA服务(二十三)Silverlight 客户端 4
  2. 区别用户使用的终端设备代码 转 https://segmentfault.com/a/1190000012957023
  3. 线性筛法 与 线性求欧拉函数 的计算模板
  4. 关于Java在Linux or Android平台调用.so库
  5. [webpack3.8.1]Guides-4-Output Management(输出管理)
  6. 【杭电多校2020】Total Eclipse【贪心】【并查集】
  7. 【POJ - 2762】Going from u to v or from v to u?(Tarjan缩点,树形dp 或 拓扑排序,欧拉图相关)
  8. Redis数据存储解决方案
  9. Hitv8 文件批量重命名工具
  10. 指令脚本redis线上环境监控脚本(python脚本)
  11. linux 深度 root,深度刷机让毫秒级一键ROOT成为现实
  12. 搅动PC市场风云,荣耀何以成为破局者?
  13. 如何用html和css制作网页,html和css如何实现制作一个网页
  14. 如何开启显示文件后缀名(扩展名)
  15. CDC Comms Interface 设备解决方案
  16. 百度找不到服务器是怎么回事,百度搜索不能用了
  17. 酒店无线WiFi实名认证方案
  18. 深度长文:AMD的崛起、衰落与复兴
  19. TOI2008 二元一次联立方程式
  20. Simple Wallpaper Changer

热门文章

  1. 信息安全系统设计基础实验四:外设驱动程序设计
  2. zabbix 安装和基础监控
  3. 设置嵌入式系统开机自动启动程序
  4. 硬盘安装 Ubuntu 9.04 与 XP 双系统 (含 Grub 不写入 MBR 的方法)
  5. 有关编辑距离计算的一点整理。
  6. Googletest Primer
  7. 打造个人多媒体服务器之二
  8. Redis集群环境搭建
  9. Java基础增强:集合的嵌套案例
  10. html2cavans