Jack Huang's Blog


  • 首页

  • 标签

  • 归档

  • 搜索

树莓派连接访问方法

发表于 2022-05-11 | 更新于 2022-05-13

给树莓派3B安装好系统后,接下来就是访问树莓派了。主要有三种方法:

鼠标键盘显示器法

USB转串口连接法

请参考树莓派学习之USB转串口

无线网络连接法

如果存在树莓派连接好wifi后无法上网的问题,请参考树莓派 3B+/4B 连接“手机热点“或“WiFi“ 后无法上网(必解)

有线网络直连法

请参考树莓派使用网线直连电脑的方法。

参考文献

  1. 树莓派使用网线直连电脑的方法,by 晒月亮的孩子.
  2. 树莓派3B无显示屏安装系统及远程登录,by 晒月亮的孩子.
  3. 树莓派学习之USB转串口,by jackhuang.
  4. Raspberry Pi (树莓派) 更换源 - stretch 版本,by 佩奇er.
  5. 树莓派安装pyenv,by 穆琪的博客.
  6. 树莓派上的上网,by 子实.
  7. 树莓派 3B+/4B 连接“手机热点“或“WiFi“ 后无法上网(必解),by wjd956574941.

TensorFlow对象检测API测试

发表于 2022-04-30 | 更新于 2022-05-31

最近想研究一下红外图像的对象检测算法,于是先拿TensorFlow对象检测API学习一下。

准备工作

准备工作主要有:

pyenv安装python 3.9.6。

1
2
pyenv install 3.9.6
pyenv global 3.9.6

创建虚拟环境

在windows系统中,使用如下命令:

1
2
3
4
5
6
7
8
9
10
# 使用venv
python -m venv tf2_api_env
.\tf2_api_env\Scripts\activate
deactivate

# 使用virtualenv
pip install virtualenv
pyenv exec virtualenv tf2_api_env
.\tf2_api_env\Scripts\activate
deactivate

在Linux系统中,使用如下命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 使用pyenv

# 创建虚拟环境
pyenv virtualenv tf2_api_env
# 激活虚拟环境
pyenv activate tf2_api_env

# 使用venv

# 创建虚拟环境
python3 venv tf2_api_env
# 激活虚拟环境
source tf2_api_env/bin/activate

安装ipython,方便测试

1
2
# 进入虚拟环境
pip install ipython -i https://pypi.tuna.tsinghua.edu.cn/simple/

安装tensorflow

安装非GPU版本tensorflow

1
2
3
# 如果没有独立GPU
pip install tensorflow==2.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install protobuf~=3.20.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/

安装GPU版本tensorflow

如果机器上有nvidia的显卡,则安装tensorflow的gpu版本,具体步骤如下:

第一步,安装tensorflow-gpu。

1
2
# 如果有独立GPU
pip install tensorflow-gpu==2.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn

第二步,安装CUDA与cuDNN。

  • 安装CUDA11.2。CUDA的版本由tensorflow-gpu的版本确定。具体请参考在 Windows 环境中从源代码构建。本步骤在有nvidia独立显卡的前提下执行。
  • 安装CUDNN v8.1文件。CUDNN的版本由tensorflow-gpu的版本确定。具体请参考在 Windows 环境中从源代码构建。本步骤在有nvidia独立显卡的前提下执行。

第三步,测试tensorflow能否识别使用nvidia gpu。

1
2
3
4
5
6
7
8
9
10
11
12
import tensorflow as tf
# GPU测试
gpu_device_name = tf.test.gpu_device_name()
print(gpu_device_name)

from tensorflow.python.client import device_lib

# 列出所有的本地机器设备
local_device_protos = device_lib.list_local_devices()

# 只打印GPU设备
[print(x) for x in local_device_protos if x.device_type == 'GPU']

tensorflow环境测试

1
2
3
4
5
6
7
# tensorflow环境测试
import tensorflow as tf
print(tf.__version__)
print(tf.__path__)

# 测试tensorflow
python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

安装TensorFlow Models

下载TensorFlow Models

TensorFlow Model Garden。TensorFlow 模型花园是一个存储库,为 TensorFlow 用户提供了许多不同的最先进 (SOTA) 模型和建模解决方案的实现。我们旨在展示建模的最佳实践,以便 TensorFlow 用户可以充分利用 TensorFlow 进行研究和产品开发。

1
git clone https://github.com/tensorflow/models

安装TensorFlow Models中的Object Detection 模块

存在两种安装TensorFlow Models中的Object Detection 模块的方法,如下所示:

  • 配置目标检测API目录,以便python能找到object detect api。使用pth文件,将object detect模块的路径添加到python模块的搜索路径中。在python安装目录的Lib\site-packages下创建tensorflow.pth文件,在其中添加Object Detection API文件路径:
1
2
3
4
5
# 创建tensorflow.pth文件,输入如下内容
J:\tensorflow\models
J:\tensorflow\models\research
J:\tensorflow\models\research\object_detection
J:\tensorflow\models\research\slim
  • 安装目标检测API。两种方法二选一即可。
1
2
3
# From within TensorFlow/models/research/
cp object_detection/packages/tf2/setup.py .
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple/

安装Protobuf,生成python语言的消息协议

安装Protobuf的过程具体参考TensorFlow2.x目标检测API安装配置步骤详细教程 Object Detection API with TensorFlow2.x 。

1
2
cd models/research/
protoc/bin/protoc object_detection/protos/*.proto --python_out=.

测试tf object detect api,并安装缺失模块。

1
2
3
4
5
6
7
8
9
# 测试tf object detect api
python object_detection/builders/model_builder_tf2_test.py

# 根据上述测试脚本提示,安装缺失模块
pip install tf-slim
pip install scipy
pip install tensorflow_io
pip install matplotlib
pip install pyyaml

开源数据集

数据集是进行深度学习的前提和基础。

Oxford-IIIT 宠物数据集

我们创建了一个包含 37 个类别的宠物数据集,每个类别大约有 200 张图像。这些图像在比例、姿势和照明方面有很大的变化。所有图像都有相关的品种、头部 ROI 和像素级三元图分割的地面实况注释。

具体下载地址请参考Oxford-IIIT 宠物数据集。

COCO数据集

MS COCO的全称是Microsoft Common Objects in Context,起源于微软于2014年出资标注的Microsoft COCO数据集,与ImageNet竞赛一样,被视为是计算机视觉领域最受关注和最权威的比赛之一。

COCO数据集是一个大型的、丰富的物体检测,分割和字幕数据集。这个数据集以scene understanding为目标,主要从复杂的日常场景中截取,图像中的目标通过精确的segmentation进行位置的标定。图像包括91类目标,328,000影像和2,500,000个label。目前为止有语义分割的最大数据集,提供的类别有80 类,有超过33 万张图片,其中20 万张有标注,整个数据集中个体的数目超过150 万个。

COCO数据集使用

请参考COCO数据集使用。

COCOAPI

完整的COCO数据集有十几个G大小,我们没有必要全部下载下来,只需要下载自己感兴趣的类别图像即可。这时就需要使用COCOAPI。

COCO API 协助加载、解析和可视化 COCO 中的注释。API 支持多种注释格式(请参见数据格式页面)。

  • 下载cocoapi
1
git clone https://github.com/cocodataset/cocoapi.git
  • pythonapi安装

进入COCOAPI的PythonAPI文件夹,输入如下命令:

1
python setup.py build_ext install

安装错误解决方法请参考错误:cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”。

模型训练

准备数据集

注解数据集

安装LabelImg工具

LabelImg 是一个图形图像标注工具。它是用 Python 编写的,并使用 Qt 作为其图形界面。

注释以 PASCAL VOC 格式保存为 XML 文件,这是ImageNet使用的格式。此外,它还支持 YOLO 和 CreateML 格式。

可以从LabelImg的官方存储库labelImg中下载最新的LabelImg工具。

使用K折交叉验证分区数据集

可使用python脚本,请参考partition_dataset.py。

创建标签映射

TensorFlow 需要一个标签映射,即将每个使用的标签映射到一个整数值。此标签图用于训练和检测过程。

下面我们展示一个示例标签映射(例如label_map.pbtxt),假设我们的数据集包含 2 个标签,dogs并且cats:

1
2
3
4
5
6
7
8
9
item {
id: 1
name: 'cat'
}

item {
id: 2
name: 'dog'
}

标签地图文件有扩展.pbtxt名,应该放在training_demo/annotations文件夹内。

创建TensorFlow Records文件

TFRecord 是Google官方推荐的一种数据格式,是Google专门为TensorFlow设计的一种数据格式。通过将训练数据或测试数据打包成TFRecord文件,就可以配合TF中相关的DataLoader / Transformer等API实现数据的加载和处理,便于高效地训练和评估模型。

实际上,TFRecord是一种二进制文件,其能更好的利用内存,其内部包含了多个tf.train.Example, 而Example是protocol buffer(protobuf) 数据标准的实现,在一个Example消息体中包含了一系列的tf.train.feature属性,而 每一个feature 是一个key-value的键值对,其中,key 是string类型,而value 的取值有三种:

  • bytes_list: 可以存储string 和byte两种数据类型。
  • float_list: 可以存储float(float32)与double(float64) 两种数据类型 。
  • int64_list: 可以存储:bool, enum, int32, uint32, int64, uint64 。

重用预训练模型

下载预训练模型

从此处TensorFlow 2 Detection Model Zoo选择预训练模型下载。此处下载SSD ResNet50 V1 FPN 640x640 模型。

重新配置训练管线

修改模型文件夹下的pipeline.config文件,用于训练自己的模型。以SSD ResNet50 V1 FPN 640x640模型的pipeline.config文件为例,具体些修改内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
model {
ssd {
num_classes: 1 // 此时修改模型输出类别数量
image_resizer {
fixed_shape_resizer {
height: 640
width: 640
}
}
...
}
}
train_config {
batch_size: 4 // 根据GPU显卡或内存大小设置合适的批处理大小
data_augmentation_options {
random_horizontal_flip {
}
}
data_augmentation_options {
random_crop_image {
min_object_covered: 0.0
min_aspect_ratio: 0.75
max_aspect_ratio: 3.0
min_area: 0.75
max_area: 1.0
overlap_thresh: 0.0
}
}
...
fine_tune_checkpoint: "J:/tensorflow/workspace/training_demo/pre-trained-models/ssd_resnet50_v1_fpn_640x640_coco17_tpu-8/checkpoint/ckpt-0" // 原模型的checkpoint
num_steps: 25000
startup_delay_steps: 0.0
replicas_to_aggregate: 8
max_number_of_boxes: 100
unpad_groundtruth_tensors: false
fine_tune_checkpoint_type: "detection" // 为目标检测任务修改此处
use_bfloat16: false
fine_tune_checkpoint_version: V2
}
train_input_reader {
label_map_path: "J:/tensorflow/workspace/training_demo/annotations/label_map.pbtxt" // 标签映射文件路径
tf_record_input_reader {
input_path: "J:/tensorflow/workspace/training_demo/annotations/train.record" // 用于训练的tfrecord文件路径
}
}
eval_config {
metrics_set: "coco_detection_metrics"
use_moving_averages: false
}
eval_input_reader {
label_map_path: "J:/tensorflow/workspace/training_demo/annotations/label_map.pbtxt" // 标签映射文件路径
shuffle: false
num_epochs: 1
tf_record_input_reader {
input_path: "J:/tensorflow/workspace/training_demo/annotations/val.record" // 用于验证的tfrecord文件路径
}
}

训练新模型

准备训练模型

将TensorFlow/models/research/object_detection/model_main_tf2.py文件粘贴到training_demo文件夹。该文件是训练和评估新模型的入口文件。

训练模型

使用如下命令开始训练新模型:

1
2
cd J:\tensorflow\workspace\training_demo
python model_main_tf2.py --model_dir J:\tensorflow\workspace\training_demo\models\my_ssd_resnet50_v1_fpn --pipeline_config_path J:\tensorflow\workspace\training_demo\models\my_ssd_resnet50_v1_fpn\pipeline.config

注意:此处参数–model_dir是模型输出目录,除了存在pipeline.config外,应该是空的。*否则将发生错误Pretrained Models number of classes doesnt match own dataset number of classes : Cannot assign to variable。

评估模型

使用如下命令评估训练好的模型:

1
2
cd J:\tensorflow\workspace\training_demo
python model_main_tf2.py --model_dir J:\tensorflow\workspace\training_demo\models\my_ssd_resnet50_v1_fpn --pipeline_config_path J:\tensorflow\workspace\training_demo\models\my_ssd_resnet50_v1_fpn\pipeline.config --checkpoint_dir J:\tensorflow\workspace\training_demo\models\my_ssd_resnet50_v1_fpn

监控训练作业进度

使用如下命令监控模型训练进度:

1
2
cd J:\tensorflow\workspace\training_demo
tensorboard --logdir=models/my_ssd_resnet50_v1_fpn

上面的命令将启动一个新的 TensorBoard 服务器,它(默认)监听你机器的 6006 端口。完成此操作后,转到您的浏览器并http://localhost:6006/在地址栏中输入,然后您应该会看到一个仪表板(如果您的模型刚刚开始训练,可能会显示较少)。

导出训练模型

训练工作完成后,使用如下步骤导出模型:

(1)复制TensorFlow/models/research/object_detection/exporter_main_v2.py脚本并将其直接粘贴到您的training_demo文件夹中。

(2)运行如下命令:

1
2
cd J:\tensorflow\workspace\training_demo
python exporter_main_v2.py --input_type image_tensor --pipeline_config_path .\models\my_ssd_resnet50_v1_fpn\pipeline.config --trained_checkpoint_dir .\models\my_ssd_resnet50_v1_fpn --output_directory .\exported-models\my_ssd_resnet50_v1_fpn

评价指标

对于一个目标检测模型的好坏,总的来说可以从以下三个方面来评估:

  • 分类的精度如何。一般可以用准确度(Accuracy),精度(Precision),召回率(Recall Rate), PR 曲线,AP,mAP等
  • 定位的精度如何。比如 IoU
  • 运行的速度如何。比如 fps,一秒处理几张图。

具体内容请参考目标检测模型的评价指标(Acc, Precision, Recall, AP, mAP, RoI)。

参考文献

  1. TensorFlow Object Detection API,by tensorflow.
  2. TensorFlow2.x GPU版安装与CUDA版本选择指南,by Color_Space.
  3. 在 Windows 环境中从源代码构建,by tensorflow.
  4. COCO2014/2017数据集,by THE@JOKER.
  5. TensorFlow2.x目标检测API测试代码使用演示,by Color Space.
  6. TensorFlow2.x目标检测API安装配置步骤详细教程 Object Detection API with TensorFlow2.x ,by Color_Space.
  7. python安装第三方包的安装路径,dist-packages和site-packages区别,by 陈 超.
  8. 用 .pth 文件附加 Python 模块搜索路径,by 隔叶黄莺.
  9. Google Protobuf简明教程,by geekpy.
  10. Tensorflow-GPU: How to Install Tensorflow with NVIDIA CUDA,cuDNN and GPU support on Windows,by Ilekura Idowu.
  11. Dataset之COCO数据集:COCO数据集的简介、下载、使用方法之详细攻略,by 一个处女座的程序猿.
  12. COCO数据集的标注格式,by Gemfield.
  13. COCO数据集标注详解,by 2044914130.
  14. RLE格式分割标注文件表示,by AIHGF.
  15. TensorFlow 2 Object Detection API tutorial,by github.
  16. TFRecord 简介,by xmfbit.
  17. Using regular expression flags in Python,by John Lekberg.
  18. 错误:cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”,by 点亮~黑夜.
  19. COCO数据集使用,by Meumax-GDUT.
  20. 目标检测数据集PASCAL VOC简介,by arleyzhang.
  21. Building a Toy Detector with Tensorflow Object Detection API,by Priya Dwivedi.
  22. 【Tensorflow】tf.app.run()与命令行参数解析,by TwT520Ly.
  23. 关于TFRecords和tf.Example的使用,by Zessay.
  24. Pandas教程 | 超好用的Groupby用法详解,by 易执.
  25. Pandas组合操作,by lysh1987.
  26. TensorFlow 数据输入格式之 TFRecord,by 逑识.
  27. 使用 Tensorflow Object Detection API 训练自己的模型,by 菁菁者莪.
  28. tensorflow出现显存不足的提示,by 楠仔码头.
  29. 使用COCOAPI操作COCO数据集 遇到的问题 TypeError: ‘numpy.float64’ object cannot be interpreted,by TheOldManAndTheSea.
  30. Pretrained Models number of classes doesnt match own dataset number of classes : Cannot assign to variable,by tensorflow.
  31. Some Python objects were not bound to checkpointed values,by stackoverflow.
  32. 目标检测模型的评价指标(Acc, Precision, Recall, AP, mAP, RoI),by kuweicai.
  33. tensorflow2转tflite提示OP不支持的解决方案,by nudt_qxx.
  34. ModuleNotFoundError: No module named ‘gin’,by stackoverflow.

目标检测相关知识记录

发表于 2022-04-27 | 更新于 2022-05-30

目标检测任务是找出图像或视频中人们感兴趣的物体,并同时检测出它们的位置和大小。不同于图像分类任务,目标检测不仅要解决分类问题,还要解决定位问题,是属于Multi-Task的问题。

作为计算机视觉的基本问题之一,目标检测构成了许多其它视觉任务的基础,例如实例分割,图像标注和目标跟踪等等;从检测应用的角度看:行人检测、面部检测、文本检测、交通标注与红绿灯检测,遥感目标检测统称为目标检测的五大应用。

数据集

参考链接

  1. 综述:目标检测二十年(2001-2021),by 派派星.
  2. 2021深度学习目标检测综述,by 叶舟.
  3. 综述计算机视觉五大技术:图像分类、对象检测、目标跟踪、语义分割和实例分割,by ExtremeMart.
  4. 计算机视觉—–图像分类综述,by Avery123123.
  5. 红外图像数据集,by hunnzi.
  6. FLIR红外数据集踩坑总结,by FLIR红外数据集踩坑总结.
  7. 轻型网络知识点,by 飞翔的河马F.
  8. 树莓派zero图像分类与目标检测,by 孙易泽 吴锦程 詹沛 徐潇涵.
  9. (三十三)通俗易懂理解——SSD原理与实现,by 梦里寻梦.
  10. YOLO目标检测从V1到V3结构详解,by AI算法与图像处理.
  11. 目标检测|YOLO原理与实现,by 小小将.
  12. 深度学习目标检测系列:一文弄懂YOLO算法|附Python源码,by 阿里云云栖号.
  13. Stacked Hourglass Networks简析,by TwiLight.
  14. 详解Region Proposal Network,by 不认输的绿皮车.
  15. RPN(Region Proposal Network)和 Anchor 理解,by 梦星魂24.
  16. CVPR2019目标检测方法进展综述,by SIGAI.
  17. 重读 CenterNet,一个在Github有5.2K星标的目标检测算法,by 忆臻.
  18. centernet论文阅读笔记,by 雾游.
  19. 一文看尽物体检测中的各种FPN,by 小纸屑.
  20. 【深度学习】Faster-RCNN:1. 特征金字塔网络Feature Pyramid Network,by dinghye.
  21. Batch Normalization:批量归一化详解,by wxler.
  22. 详解残差网络,by 大师兄.
  23. 物体检测中的特征金字塔,by 尹国冰.

网线的相关知识

发表于 2022-04-02

最近家里电信宽带免费设计到千兆了,可是一测试,网速还是百兆,问题出在哪呢?感紧学习一下,解决这个问题。

问题原因

家里网络是电信光猫加荣耀路由pro2,通过网络测速,发现荣耀路由pro2与光猫之间网速只有百兆。刚开始以为是荣耀路由pro2与光猫之间使用五类线的原因,后面才发现不是这个原因。真正的原因是电信光猫过于老旧,其网口是百兆口。看来只能换新的拥有千兆网口的光猫了。

解决方法

换光猫步骤如下:

  • 获得老光猫的LOID和Password。
  • 新光猫恢复出厂设置后,连接新光猫。
  • 使用老光猫的LOID和Password,注册新光猫。

参考链接

  1. 为什么网线传输不超过一百米?,by 武汉格凌科技.
  2. 千兆宽带配什么网线?终于有人讲清楚了,by 上海电信.
  3. 路由器 Wi-Fi 实际测试速率达不到宣传的 Wi-Fi 最高速率,by huawei.
  4. Cat5e,超五类线到底能不能支持千兆?,by 猿某人.
  5. 老房子WiFi布网攻略 篇四:IPTV无线化——光猫更换指南,by qianseyue.

Matlab导出精美论文插图

发表于 2022-03-29 | 更新于 2023-04-08

Matlab绘图代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
x = 0:0.01:0.05;
y = 1:-0.18:0.1;
plot(x,y)

x = [0 0.2 0.5 1.2 1.8 2.5 3.3 3.8 4 5];
y = [1 -1 0 0.8 0 -0.6 0 0.2 0.15 -0.1];
xx=[0:0.01:5]; yy=spline(x,y,xx); %三次样条插值函数
plot(xx,yy)

% 显示坐标区网格线
grid on

% 设置坐标轴范围
xlim([0 0.06])
ylim([0 1])

% 设置坐标轴刻度
xticks([0 0.02 0.04 0.06])
yticks([0 0.5 1])

% 设置图框纵横比
left=200;%距屏幕左下角水平距离
bottem=200;%距屏幕左下角垂直距离
width=400;%宽度,像素数
height=200;%高度
set(gcf,'position',[left,bottem,width,height])

% 设置坐标轴名称
xlabel('t/s')
ylabel('\omega_x/(\circ)*s^{-1}')

参考链接

  1. MATLAB如何导出精美的论文插图?,by 易夕.
  2. MATLAB图文本中的希腊字母和特殊字符,by matlab.

python项目组织方法

发表于 2022-03-04

如何科学的组织是构建大型项目的基础,可是人员分工协作的前提。下面介绍Python项目的组织方法

基本概念

类

模块

包

参考链接

  1. Python 大型项目基础:包、模块、类的组织,by 小天儿.
  2. Python 软件项目文件结构组织,by Marlous.
  3. 组织好你的项目,by hitchhiker.

ProcessMonitor监控软件安装过程

发表于 2022-02-26

最近在安装Office2013的过程中,提示需要卸载已安装的Office2010,然而卸载了Office2010之后,依然提示该错误,无法安装Office2013。

分析其原因,可能是卸载Office2010不干净,在注册表中还存留Office2010的注册表信息,而当运行Office2013的Setup.exe安装程序时,刚好读到存留的Office2010注册表信息,于是Office2013的Setup.exe安装程序认为Office2010没有卸载,从而无法继续安装。

解决方法是找到并删除Office2013的Setup.exe安装程序读取的Office2010的注册表信息,该条注册表信息导致Office2013的Setup.exe无法继续。

可以使用Process Monitor监控软件解决该问题。

参考链接

  1. ProcessMonitor文件以及注册表监视器的使用,by Amrecs.
  2. 如何知道安装程序在进行安装时对你的电脑到底做了什么?,by zhaotianff.

tf.stop_gradient梯度截断作用

发表于 2022-02-24

可能会有这样的场景, 即我们可能只需要训练网络的特定部分, 然后网络的其余部分则保持未之前的状态(不进行梯度更新). tf.stop_gradient 正是为了处理这一情景的. 即在 tf.stop_gradient 中执行任何操作都不会导致在 BP 过程中梯度的更新.

参考链接

  1. 【Tensorflow】— tf.stop_gradient梯度截断作用,by 代码先锋网.

对偶问题转化

发表于 2022-02-23 | 更新于 2022-02-24

在一个优化问题中,原始问题通常会带有很多约束条件,这样直接求解原始问题往往是很困难的,于是考虑将原始问题转化为它的对偶问题,通过求解它的对偶问题来得到原始问题的解。对偶性(Duality)是凸优化问题的核心内容。

参考链接

  1. 线性规划原问题对偶问题之间的转化,一张图带你理解,by 中南自动化学院“智能控制与优化决策“至渝.
  2. 简易解说拉格朗日对偶(Lagrange duality),by 90Zeng.
  3. 拉格朗日对偶性,by Eureka.
  4. 【凸优化笔记6】-拉格朗日对偶(Lagrange duality)、KKT条件,by Lauer.
  5. 拉格朗日对偶性(Lagrance duality) 推导与简单理解,by 小鹅鹅.
  6. 拉格朗日对偶性,by 井底蛙蛙呱呱呱.
  7. 拉格朗日对偶,by Frostime.
  8. 优化方法:原问题和拉格朗日对偶问题(primal-dual),by 俎志昂.
  9. 拉格朗日对偶详解,by CodeAntenna.

最大似然估计

发表于 2022-02-22

在统计学中,最大似然估计(英语:Maximum Likelihood Estimation,简作MLE),也称极大似然估计,是用来估计一个概率模型的参数的一种方法。

$$ \begin{aligned} \ln p(x_i|\mu,\sigma) = \ln \frac{1}{\sqrt{2\pi} \sigma} \exp \left{ - \frac{(x_i-\mu)^2}{2\sigma^2} \right} \ = \left{ - \frac{(x_i-\mu)^2}{2\sigma^2} - \ln \sigma - \ln \sqrt{2\pi} \right} \end{aligned} ​$$

参考链接

  1. 最大似然估计,by wikipedia.
  2. 一文搞懂极大似然估计,by 忆臻.
  3. 高斯分布微分熵的推导,by 机器学习的小学生.
  4. 高斯分布的极大似然估计,by Yemiekai.
上一页1…161718…52下一页

Jack Huang

519 日志
66 标签
© 2025 Jack Huang
由 Hexo 强力驱动
|
主题 — NexT.Muse