IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 机器学习 Exercise 3(Ⅰ):多元分类(未) -> 正文阅读

[人工智能]机器学习 Exercise 3(Ⅰ):多元分类(未)

1.多元分类

利用一对多逻辑回归以及神经网络识别手写数字(0--9)

1.1 数据集

ex3data1.mat文件中包含5000个手写数字的训练样本。mat格式文件意味着数据已经以矩阵形式被保存在matlab中,该文件可通过load命令将保存的数据载入。

这5000个样本中的每个样本都是20像素*20像素的灰度图像,每个像素由一个浮点数表示,指示该位置的灰度强度,20*20的像素网络被展为一400维向量。在矩阵X中,每个训练样本都是单独一行,这给了我们一个5000*400的矩阵X,其中每一行都是一个手写数字图像的样本。

?第二部分训练集是一个5000维的向量y,包含了所有训练样本的标签,其中数字“0”标记为10,其余正常标记对应数字。

1.2 数据可视化

首先对训练集中的子集进行可视化,ex3.m中part1将从X中随机挑选100行,将其传给displaydata函数。该函数将一并绘制这些数据的像素块图像

function [h, display_array] = displayData(X, example_width)

if ~exist('example_width', 'var') || isempty(example_width) 
	example_width = round(sqrt(size(X, 2)));
end

colormap(gray);

[m n] = size(X);
example_height = (n / example_width);

display_rows = floor(sqrt(m));
display_cols = ceil(m / display_rows);

pad = 1;

display_array = - ones(pad + display_rows * (example_height + pad), ...
                       pad + display_cols * (example_width + pad));

curr_ex = 1;
for j = 1:display_rows
	for i = 1:display_cols
		if curr_ex > m, 
			break; 
		end
		% Copy the patch
		
		% Get the max value of the patch
		max_val = max(abs(X(curr_ex, :)));
		display_array(pad + (j - 1) * (example_height + pad) + (1:example_height), ...
		              pad + (i - 1) * (example_width + pad) + (1:example_width)) = ...
						reshape(X(curr_ex, :), example_height, example_width) / max_val;
		curr_ex = curr_ex + 1;
	end
	if curr_ex > m, 
		break; 
	end
end

h = imagesc(display_array, [-1 1]);

axis image off

drawnow;

end

1.3 代价函数与梯度向量化

建立多元分类器,因为有十个分类,所以需要训练10个分离逻辑回归分类器。为了使训练有效,要确保代码向量化

代价函数如下:

?使用矩阵乘法可以快速计算h_θ,将X和θ定义为:

?计算X*θ得到:

a^T*b=b^T*a?

function [J, grad] = lrCostFunction(theta, X, y, lambda)

m = length(y); % number of training examples

J = 0;
grad = zeros(size(theta));

part1=-y'*log(sigmoid(X*theta));
part2=(1-y)'*log(1-sigmoid(X*theta));
reg=lambda*theta'*theta/(2*m);

J=(part1-part2)/m+reg;

grad=X'*(sigmoid(X*theta)-y')/m+lambda*theta/m;

grad = grad(:);
end

?1.4 一对多分类

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-20 12:29:39  更:2021-10-20 12:31:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:29:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码