SciTech-BigDataAIML-TensorFlow-Model的Goal目标 + Principle原理 + Design设计 + Compile编译:设置(LossFunction+Optimizer+Metrics)与编译
model模型 What是什么
社会化大生产角度:Model模型 是“劳动产品”, 数字化/数据化时代 自动“炼金机”。
社会角度:金钱与价值创造将在一定程度上,改变社会的“利益分配”与“阶层结构”。
没错,突破“临界点”,fusion持续稳定的产能。
先进的生产总会取代落后的生产,同时防止“逆淘汰”阻碍系统进步,世界总会升级。
“先进的” 与“老破旧”是相对的,矛盾与竞争是社会常态,任何时候都有选择与作为。
只是数字化与AI模型这种生产方式足够先进。经济角度: 等同设计生产“印钞机”;如果:
招到足够优秀的核心组织成员,是保障生产的必要前提,集齐fusion“核聚变”;
决策(商业模型)有效,稳固的关系网;
- Gov的接纳、授权、许可与鼓励;
- 客户(服务消费方) 的满意度,乐意为此付费;
- 合作伙伴与供应商(包括软硬件、数据、服务)选择适当;
管理高效(商业、生产、科技等各种秩序可靠、稳定、冗余):
- 数字时代的生产与管理,既有传统管理成分,更有新特点;
- 人事、IT、运营、行政、财务、生产团队的组建与动态稳定;
- 模型设计正确,模型设计方持续的保障数据变化满足需求;
数据真实可靠,数据提供方可持续的提供可靠的数据服务;
有以上这些条件,data-driving数据驱动,可持续的产出客户满意的服务(价值 与 金钱);
商业角度: 模型的设计方与运营方 提供的“软服务”。
- 将人找对,Networking关系网,利益分配,生产协作通畅;
- 没有完美的人,都有优势与劣势,需求与产出,付出与收获;
Model模型是“可重复交付”的 "规律";
- 模型设计与选取本身,是“大规律”;
- 模型的参数,是“小规律”;
- 开会开会,一版一版的模型,一轮一轮的调参,交付;
model模型的 Goal目标:
特别重要的点是: 用采集到的最“实事求是”的“事实数据”,
推导/拟合 出 “最优参数”;当然我们设计机器和模型,自动推导。参数未知? 没关系;最坏情况,可以“概率碰撞”SGD(随机梯度下降),
只要参数是有一定规律的,就可以运用这种规律性来更好更快的确定“碰撞”好“最优参数”.
类比,例如对于“迷宫”类问题:Stochastic完全随机的,搜索下一步,随机游走漫步;
Heuristic上下文启发式的,搜索下一步,例如 A* 算法;
只要找到/总结出 越多的规律,模型效果就越好;
信息论角度: 越小的Uncertainty, 越Certain的结果, 注意Uncertainty与Risk的区分;
管理人员的一大任务就是foresee and reduce uncertainties and risks(展望并减小不确定性和风险).所以实际上 Model模型是 Model(规律) 与其设计方与运营方 提供的“软服务”。
对有 supervised监督模型, Samples不仅要有X(张量), 还要有Y(Labels标记值);
对unsupervised无监督模型,Samples只要有X(张量), 就可以得到结果;设计好概率统计包括Sampling采样模型:
Reality/Truth <-> PASM(ProbabilityAndStatisticsModel)<-> Population <-> Samples
正如概率统计老师课上讲的,设计好PASM包括其 population 与 samples 的设置非常重要采集到最具有事实代表性的datasets: 分为 training桶 和 testing桶,还有随机抽取加入training桶,多次统计平均的方法.
设计好综合的评估尺度Metrics, 与模型本身的错误率Error,
通过epoches(一轮又一轮的)调整步伐(步长,方向,...)小步快跑,
又快又准的找出最优的模型参数;使得在找到的“最优”/“最合适”的模型参数,设置为模型状态时,
总体的综合评估最优。尺度上的 Error最小(“预测值”与 “真实值”的 Error均差 / SE均差平方)
model模型的 Principle原理
- 通用组成部分包括不限于(inputs function, outputs function, states update function
- inputs function规律的将 Tensor inputs 导入模型;
- preprocessing function预处理函数
- model module function模型函数
- 通过:
Y_pred = model(X_input)
SE = Y_error^2 = (Y_pred - Y_label)^2;
to minimize SE - 以 MSE 为例:
model模型的 Design设计
- 首先 model 可有一层或多层,TF自带常用的Model;
可通过继承基类,实现特殊需求的model Class; - “搭积木”方式的高效构筑特殊需求的 Model,
TF的 Model 设计成可用 Layer(层)模块,类似搭积木的方式,
低代码拼接,快速构筑完成;
而为快速“拼装”,其必要的模块,就需要内外都有统一的规范和接口;
机器学习|model.compile()用法
示例:
import tensorflow as tf
from tensorflow.keras import datasets, layers, models class CNN(object):
def __init__(self):
model = models.Sequential()
# 第1层卷积,卷积核大小为3*3,32个,28*28为待训练图片的大小
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
# 第2层卷积,卷积核大小为3*3,64个
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
# 第3层卷积,卷积核大小为3*3,64个
model.add(layers.Conv2D(64, (3, 3), activation='relu')) model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax')) model.summary() self.model = model
model.compile()的作用:
- 为经过设计的Model(神经网络模型)设置好:
- loss损失函数、
- optimizer优化器、
- metrics准确性评价函数。
- 并且进行编译;
Optimizers优化器:
- Optimizer 的主要功能是作用在GD(梯度下降)的过程,
使得Gradient(梯度)更快(快速逼近峰值)更好(不空不漏不乱)的收敛,
从而尽快找到LossFuction(目标函数)的最小值。
可以理解为以最优最快方式的寻找最优的“损失”(loss)。 - Optimizer可选参数:
- SGD: 随机GD(随机梯度下降)
- RMSprop(动量)
- Adam(优化的动量, 常用的选择)
- Adadelta
- Adagrad
- Adamax
- Nadam
- Ftrl
Loss损失函数
- loss(cost) 描述的是 "真实值" 与 "预测值" 之间的信息差;
- 而损失函数的目的是去计算其中“损失量”的大小,进而得出一个损失/信息熵尽可能小的解,即最优权重参数。
(如图:随着训练轮次增加,损失值下降的过程) - loss function(cost function)是将随机事件或其有关随机变量的取值,
映射为非负实数以表示该随机事件的Cost(成本)或Risk(风险)的函数。 - Model(神经网络模型)以某个指标为线索寻找最优权重参数。
loss可选参数
Probabilistic losses
BinaryCrossentropy class
CategoricalCrossentropy class
SparseCategoricalCrossentropy class
Poisson class
binary_crossentropy function
categorical_crossentropy function
sparse_categorical_crossentropy function
poisson function
KLDivergence class
kl_divergence function
回归损失(Regression losses)
MeanSquaredError class
MeanAbsoluteError class
MeanAbsolutePercentageError class
MeanSquaredLogarithmicError class
CosineSimilarity class
mean_squared_error function
mean_absolute_error function
mean_absolute_percentage_error function
mean_squared_logarithmic_error function
cosine_similarity function
Huber class
huber function
LogCosh class
log_cosh function
最大间隔分类(maximum-margin classification)
Hinge class
SquaredHinge class
CategoricalHinge class
hinge function
squared_hinge function
categorical_hinge function
准确性评价函数(Metrics)
准确性评价函数用在评估模型预测的准确性。在模型训练的过程中,我们会记录模型在训练集、验证集上的预测准确性,之后会据此绘制准确率随着训练次数的变化曲线。
Metrics 可选参数
Accuracy metrics
BinaryAccuracy class
CategoricalAccuracy class
SparseCategoricalAccuracy class
TopKCategoricalAccuracy class
SparseTopKCategoricalAccuracy class
Probabilistic metrics
BinaryCrossentropy class
CategoricalCrossentropy class
SparseCategoricalCrossentropy class
KLDivergence class
Poisson class
Regression metrics
MeanSquaredError class
RootMeanSquaredError class
MeanAbsoluteError class
MeanAbsolutePercentageError class
MeanSquaredLogarithmicError class
CosineSimilarity class
LogCoshError class
Classification metrics based on True/False positives & negatives
AUC class
Precision class
Recall class
TruePositives class
TrueNegatives class
FalsePositives class
FalseNegatives class
PrecisionAtRecall class
SensitivityAtSpecificity class
SpecificityAtSensitivity class
Image segmentation metrics
MeanIoU class
Hinge metrics for "maximum-margin" classification
Hinge class
SquaredHinge class
CategoricalHinge class
发布于 2022-11-14 15:40・IP 属地浙江
深度学习(Deep Learning)
机器学习
Keras
SciTech-BigDataAIML-TensorFlow-Model的Goal目标 + Principle原理 + Design设计 + Compile编译:设置(LossFunction+Optimizer+Metrics)与编译的更多相关文章
- 学习笔记TF053:循环神经网络,TensorFlow Model Zoo,强化学习,深度森林,深度学习艺术
循环神经网络.https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/re ...
- Design Principle vs Design Pattern 设计原则 vs 设计模式
Design Principle vs Design Pattern设计原则 vs 设计模式 来源:https://www.tutorialsteacher.com/articles/differen ...
- tensorflow model save and restore
TensorFlow 模型保存/载入 我们在上线使用一个算法模型的时候,首先必须将已经训练好的模型保存下来.tensorflow保存模型的方式与sklearn不太一样,sklearn很直接,一个skl ...
- tensorflow C++接口调用目标检测pb模型代码
#include <iostream> #include "tensorflow/cc/ops/const_op.h" #include "tensorflo ...
- python tensorflow model
step01_formula # -*- coding: utf-8 -*- """ 단순 선형회귀방정식 : x(1) -> y - y = a*X + b (a ...
- tensorflow,model,object_detection,训练loss先下降后递增,到几百万,解决tensorflow,model,object,detection,loss,incease
现象:训练loss一开始下降一部分,跌代到若干次(具体多少和你的learning rate大小有关,大就迭代小就发生,小就需要多几次迭代) 日志如下(下面的日志来源于网络,我自己的日志已经clear掉 ...
- 不要怂,就是GAN (生成式对抗网络) (三):判别器和生成器 TensorFlow Model
在 /home/your_name/TensorFlow/DCGAN/ 下新建文件 utils.py,输入如下代码: import scipy.misc import numpy as np # 保存 ...
- [Tensorflow] 使用 Mask_RCNN 完成目标检测与实例分割,同时输出每个区域的 Feature Map
Mask_RCNN-2.0 网页链接:https://github.com/matterport/Mask_RCNN/releases/tag/v2.0 Mask_RCNN-master(matter ...
- tensorflow/model下的各个参数的理解
首先,这个对应的proto就是 然后config里面的image_resizer等等 就是proto里面的image_resizer 等等,对应的参数可以在proto里面寻找解释和默认值以及类型 再比 ...
- tensorflow学习笔记——模型持久化的原理,将CKPT转为pb文件,使用pb模型预测
由题目就可以看出,本节内容分为三部分,第一部分就是如何将训练好的模型持久化,并学习模型持久化的原理,第二部分就是如何将CKPT转化为pb文件,第三部分就是如何使用pb模型进行预测. 一,模型持久化 为 ...
随机推荐
- GitLab CI/CD 的配置文件 .gitlab-ci.yml 简介
〇.前言 .gitlab-ci.yml 文件主要用于项目的自动化部署配置,自动化可以大大提升团队效率,但同时这个文件的内容也比较复杂,弄清楚也并非易事,本文将对此文件的内容进行简单介绍,供参考. 另外 ...
- 【工具】Typora中主题css修改|看了这篇,一劳永逸
真正的指南 1. 查看当前的css shift+f12,与一般浏览器调试一样,先打开控制台,查找你需要修改的地方叫什么名字.(也可以点击"视图"-"开发者工具" ...
- Vmware workstation安装部署微软WSUS服务应用系统
简介 WSUS全称Windows Server Update Services,是微软开发的免费服务器角色,用于在企业内网中集中管理Windows系统及微软产品的更新分发.其前身为Windows ...
- error:<init>(Ljava/lang/String;)V
在同一个包或类名中,有重名的类哦 解决方法:换个在当前包或工程内没用过的类名就KO 照例来个eg:在javaDasic包里已有Person类,报错如下,是不是蛮熟悉咩 换个没用过的类名,例如把Pers ...
- django-channels自定义中间件验证token的方法
测试版本: python 3.8 djnago 3.2 channels 3.0 需求 在使用channels 建立websocket连接的时候,需要验证客户端的token,并保存一些关键信息 实现原 ...
- 我的Vue之旅(4)
2020-10-26 使用v-bind来绑定class属性主要是分成了两类,即对象语法与数组语法,其实在数组中也是可以混用对象语法的,但在Demo3中我没有 写出来,有兴趣的话可以自己试试.在HTML ...
- 第1.2讲、从 RNN 到 LSTM 再到 Self-Attention:深度学习中序列建模的演进之路
处理序列数据(如文本.语音.时间序列)一直是深度学习的重要课题.在这个领域中,我们从 RNN(Recurrent Neural Network)出发,经历了 LSTM(Long Short-Term ...
- Spring Boot 使用Apollo动态调整日志级别
摘要:在Spring Boot 项目中,借助Apollo动态修改配置的能力,结合Logback修改日志级别打印执行的SQL脚本. 综述 在生产环境偶现测试环境未发现的SQL查询BUG,但由于线上关 ...
- Java 记录操作日志|对象修改细节
背景描述 由于业务涉及收入敏感信息,需记录数据变更前的内容和变更后的内容,但是不能为完成任务而硬编码,要适用于不同bean.针对这种情况,本文使用泛型.反射和基于AOP的自定义注解技术来完成,对对 ...
- Redis实战-缓存穿透、缓存雪崩、缓存击穿和缓存并发的区别和解决方案
正常处理流程 客户端请求正常的时候,先读缓存,如果数据命中,则返回缓存的值:否则,把从存储层中读取出来的数据缓存至缓存,同时返回客户端.但是,为了保证系统高可用和高性能,设计一个缓存系统时必须考虑 ...