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

posted @   abaelhe  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示