Code Monkey home page Code Monkey logo

gc-knowledge-base's People

Contributors

oachan avatar

Stargazers

 avatar

Watchers

 avatar

gc-knowledge-base's Issues

DevOps相關議題討論

團隊協作

CI/CD 工具

什麼是Drone?基於容器(Container)技術的CI/CD系統。

服務監控

  • Prometheus
  • Alertmanager
  • Cloudwatch
  • Splunk

Why would I use Gatus when I can just use Prometheus, Alertmanager, Cloudwatch or even Splunk?

  1. 主動通知
  2. 較好上手

2022: 推薦自動化監控網站運行服務 - Gatus

GitOps

AI 自動平台化技術

  • 平台
    • Public Cloud: GCP、AWS
      • 公用雲是第三方提供一般公眾或大型產業集體使用的雲端基礎設施,擁有它的組織出售雲端服務,系統服務提供者藉由租借方式提供客戶有能力部署及使用雲端服務。
    • On Premise: K8S
      • 內部部署軟件是在使用該軟件的個人或組織內部的計算機上安裝並運行的,而不是在服務器場或云等遠程設施中運行。Cloud Storage、Persistent Disk、Pub/Sub、Stack Driver、Cloud SQL、Load Balancer 都會需要有替代方案。
  • 網路

DataOps、MLOps、AIOps

  • DevOps 更快地交付軟體
  • DataOps 更快地交付數據
  • MLOps 更快地交付機器學習模型
  • 附加:AIOps 利用 AI 的功能增強了 DevOps 工具

AIOps 平臺利用大數據、現代機器學習以及其他先進的分析技術,直接或間接地增強 IT 運維(監控、自動化和服務臺),具有前瞻性、個性化以及動態的洞察力。

機器學習項目相關的資源:

相關工具

prompt 技術發展調查

相關連結

img

[2022/3/9  下午 01:34 同仁評論]

這個從gpt3開始紅    主要是避掉傳統fine-tuned方式   可以用在零樣本 小樣本

然後這個需要的模型很大  我們玩不太起來 
    
用一些改良的方法  是可以用 work   但是有其他類似的方法可以取代

https://huggingface.co/facebook/bart-large-mnli

大概是像這個  利用  句子文字  和 分類文字  計算相似度

Incremental Learning技術研發討論

增量學習: Incremental Learning

Continual Learning, Lifelong Learning

相關資料

增量学习(Incremental Learning)小综述

跟online learning的差別

在线学习on-line learning和增量学习Incremental Learning区别?

online主要相对于offline或者说batch,强调的是每次只进入一个或者很少的几个样本,
多见于推荐系统等实时运行、实时训练、实时反馈的系统,非常强调实时的反馈能力。

incremental强调不能见到之前的数据(或者只能见到之前数据中很少的一部分examplar),
然后在新的数据(可能是有新的类别产生,也可能是类别不变,但是老类别的分布有所改变)上训练,
得到一个在老数据和新数据上都能work的新模型。
「尤其要注意增量学习和在线学习的区别,在线学习通常要求每个样本只能使用一次,
且数据全都来自于同一个任务,而增量学习是多任务的,但它允许在进入下一个任务之前多次处理当前任务的数据」

增量学习的实现方式

  • 正则化(regularization)
  • 回放(replay)
  • 参数隔离(parameter isolation)

其中基于正则化和回放的增量学习范式受到的关注更多,也更接近增量学习的真实目标,参数隔离范式需要引入较多的参数和计算量,因此通常只能用于较简单的任务增量学习。

基于正则化的增量学习

Learning without Forgetting (ECCV 2016)提出的LwF算法是基于深度学习的增量学习的里程碑之作

LwF算法的主要**来自于knowledge distillation

DL 模型效能優化

Automatically Mixed Precision, AMP

如果我们在训练过程中将 FP32 替代为 FP16,有以下两个好处:
1. 减少显存占用: FP16 的显存占用只有 FP32 的一半,这使得我们可以用更大的 batch size。
2. 加速训练: 使用 FP16,模型的训练速度几乎可以提升1倍。
2.3 为什么只用 FP16 会有问题
如果我们简单地把模型权重和输入从 FP32 转化成 FP16,虽然速度可以翻倍,但是模型的精度会被严重影响。原因如下:
1. 上/下溢出: FP16 的表示范围不大,超过 [公式] 的数字会上溢出变成 inf,小于 [公式] 的数字会下溢出变成 0。
2. 舍入误差: 就算梯度不会上/下溢出,如果梯度值和模型的参数值相差太远,也会发生舍入误差的问题。
2.4 解决方案
- 损失缩放 (Loss Scaling)
- FP32 权重备份
- 黑名单
- Tensor Core


DL 基本技巧討論

DL 技巧

Optimizer

  • SGD
  • AdaGrad
  • Momentum
  • RMSprop
  • Adam

Activation Function

激活函数(Activation Function)是一种添加到人工神经网络中的函数,
旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,
激活函数最终决定了要发射给下一个神经元的内容。

參考文獻:

  1. 深度学习领域最常用的10个激活函数,一文详解数学原理及优缺点
  2. 常用激活函数(激励函数)理解与总结

十种激活函数

  • Sigmoid 激活函数
    • 用于将预测概率作为输出的模型。由于概率的取值范围是 0 到 1,因此 Sigmoid 函数非常合适;
    • sigmoid函数曾经被使用的很多,不过近年来,用它的人越来越少了
    • 缺点1: 在深度神经网络中梯度反向传递时导致梯度爆炸和梯度消失(梯度爆炸概率小, 梯度消失概率大)
    • 缺点2: Sigmoid 的 output 不是0均值(即zero-centered)
    • 缺点3: 幂运算比较耗时
  • Tanh / 双曲正切激活函数
    • 注意:在一般的二元分类问题中,tanh 函数用于隐藏层,而 sigmoid 函数用于输出层,但这并不是固定的,需要根据特定问题进行调整
    • Tanh解决了Sigmoid函数的不是zero-centered输出问题,然而,梯度消失(gradient vanishing)的问题和幂运算的问题仍然存在。
  • ReLU 激活函数
    • 当输入为正时,不存在梯度饱和问题。
    • 计算速度快得多。ReLU 函数中只存在线性关系,因此它的计算速度比 sigmoid 和 tanh 更快。
    • Dead ReLU 问题。当输入为负时,ReLU 完全失效,在正向传播过程中,这不是问题。有些区域很敏感,有些则不敏感。
    • (2018) ReLU目前仍是最常用的activation function,在搭建人工神经网络的时候推荐优先尝试!
    • 优点:
      • 解决了gradient vanishing问题 (在正区间)
      • 计算速度非常快,只需要判断输入是否大于0
      • 收敛速度远快于sigmoid和tanh
    • 问题:
      • ReLU的输出不是zero-centered
      • Dead ReLU Problem,指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。
  • Leaky ReLU
    • 从理论上讲,Leaky ReLU 具有 ReLU 的所有优点,而且 Dead ReLU 不会有任何问题,但在实际操作中,尚未完全证明 Leaky ReLU 总是比 ReLU 更好。
  • ELU
    • ELU vs Leaky ReLU vs ReLU: 没有 Dead ReLU 问题
    • 一个小问题是它的计算强度更高。与 Leaky ReLU 类似,尽管理论上比 ReLU 要好,但目前在实践中没有充分的证据表明 ELU 总是比 ReLU 好。
  • PReLU(Parametric ReLU)
    • 在负值域,PReLU 的斜率较小,这也可以避免 Dead ReLU 问题。
  • Softmax
    • Softmax 是用于多类分类问题的激活函数,在多类分类问题中,超过两个类标签则需要类成员关系。
    • 对于长度为 K 的任意实向量,Softmax 可以将其压缩为长度为 K,值在(0,1)范围内,并且向量中元素的总和为 1 的实向量。
    • 在零点不可微;负输入的梯度为零,这意味着对于该区域的激活,权重不会在反向传播期间更新,因此会产生永不激活的死亡神经元。
  • Swish
    • 「无界性」有助于防止慢速训练期间,梯度逐渐接近 0 并导致饱和;
  • Maxout
    • 【Day 18】深度學習(Deep Learning)--- Tip(三): Maxout
      • Maxout Network就是讓你的Network自動去學它的Activation function,而因為是自動學出來的,所以昨天提到的ReLU就變成只是Maxout network的一個特別案例而已,也就可以是其他的Activation function,用訓練資料來決定Activation function。
    • Maxout激活函数以及特点?
      • 优点:Maxout的拟合能力非常强,可以拟合任意的凸函数。Maxout具有ReLU的所有优点,线性、不饱和性。同时没有ReLU的一些缺点。如:神经元的死亡。
      • 缺点:从上面的激活函数公式中可以看出,每个神经元中有两组(w,b)参数,那么参数量就增加了一倍,这就导致了整体参数的数量激增。
  • Softplus
    • Softplus 函数类似于 ReLU 函数,但是相对较平滑,像 ReLU 一样是单侧抑制。它的接受范围很广:(0, + inf)。
    • 相比于早期的激活函数,softplus和ReLU更加接近脑神经元的激活模型,而神经网络正是基于脑神经科学发展而来。
  • Softsign
    • Softsign函数是Tanh函数的另一个替代选择。就像Tanh函数一样,Softsign函数是反对称、去中心、可微分,并返回-1和1之间的值。其更平坦的曲线与更慢的下降导数表明它可以更高效地学习,比tTanh函数更好的解决梯度消失的问题。另一方面,Softsign函数的导数的计算比Tanh函数更麻烦。
  • GELUs
    • GELUs正是在激活中引入了随机正则的**,是一种对神经元输入的概率描述,直观上更符合自然的认识,同时实验效果要比ReLU与ELU都要好。
    • GELUs其实是dropout、zoneout、ReLU的综合
    • GELUs在最近的Transformer模型,包括谷歌的BERT和OpenAI 的GPT-2中得到了应用。

应用中如何选择合适的激活函数?(2018)

  1. 深度学习往往需要大量时间来处理大量数据,模型的收敛速度是尤为重要的。所以要尽量选择输出具有zero-centered特点的激活函数以加快模型的收敛速度。
  2. 如果使用 ReLU,那么一定要小心设置 learning rate,而且要注意不要让网络出现很多 “dead” 神经元
  3. 最好不要用 sigmoid,你可以试试 tanh,不过可以预期它的效果会比不上 ReLU 和 Maxout.

Loss Function / Cost Function

參考文獻: DL:常用损失函数

  • 以最小化损失为目标,称为经验风险最小化:minimize(Loss(Data|Model))
  • 以最小化损失和复杂度为目标,称为结构风险最小化:minimize(Loss(Data|Model) + complexity(Model))

损失项

损失项,用于衡量模型与数据的拟合度(fitness)的损失函数组成部分,
也是实际需要进行选择性设计和采用的模型关键成分。
这种针对性的处理,在聚类分析和人脸识别领域非常常见。

回归损失函数

  • MAE(Mean Absolute Error)平均绝对误差 (L1 Loss)
  • MSE(Mean Squared Error)均方误差 (L2 Loss)
  • Huber Loss 休伯损失

区间损失函数

  • Quantile Loss 分位数损失

分类损失函数

  • Log Loss 对数损失
  • Cross Entropy Loss 交叉熵损失
  • Hinge Loss 合页损失
  • Contrastive Loss 对比损失
  • Triplet Loss 三元损失
  • N-pair Loss 对组排异损失

正则项

另一个是正则化项,用于衡量模型复杂度(complexity)的损失函数组成部分。
衡量模型复杂度的方法有很多。
大部分是从权重对整个模型影响的层面来判断的,即从权重的大小,来衡量某个参数对整体模型的影响。

  • L-1 惩罚项
  • L-2 惩罚项

不平衡資料分類問題

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.