本文是参考吴恩达老师的深度学习视频而做的笔记

深度学习

引言

挑战:AI真正的挑战在于解决那些对人类来说很容易执行,但很难形式化描述的问题,比如识别人们所说的话/图像中的脸/分辨苹果和梨。

解决方案:让计算机从经验中学习,并根据层次化的概念体系理解世界,而每个概念是通过与某些相对简单的概念之间的关系来定义的。而如何绘制出这种关系,就是我们常说的深度学习

区别

机器学习:AI系统需要具备自己获取知识的能力,即从原始数据中提取模式的能力。即研究人员不会编写指令控制机器,而是用大量数据和算法“训练”机器,让机器自己学会如何执行任务。

参考链接

Octave的安装和使用

安装

    brew update && brew upgrade
brew install gcc
brew install octave

注:不要安装4.0.0版本,该版本有重大bug.

使用

基本操作

加、减、乘、除
    // 加
1+2
// 减
6-2
// 乘
3*4
//除
1/2
// 指数运算
2^3
逻辑运算
    // 相等
1 == 2 % 注释内容
//不相等
1 ~= 2 % true
// 逻辑与
1 && 0 % false
// 逻辑或
1 || 0 % true
// 异或
xor(1,0)
修改提示符
    PS1('>> ');
变量
    a = 3

    a = 3; % 阻止打印输出
打印或显示一个变量
    a 

    disp(a)

    // 显示默认位数
format long
a
format short
a
向量和矩阵
    // 矩阵
A = [1 2; 3 4; 5 6]
// 行向量
v = [1 2 3]
// 列向量
v = [1; 2; 3]
//矩阵的其他生成
v = 1:0.1:2
v = 1:6
ones(2,3)
C = 2*ones(2,3)
w = ones(1,3)
w = zeros(1,3)
// 随机矩阵,数值0-1
w = rand(3,3)
// 服从正态分布
w = randn(1,3)
//
w = -6 + sqrt(10)*(rand(1,10000));
// 绘制成直方图
hist(w)
hist(w,50) // 单位矩阵
I = eye(4) //帮助指令
help eye
help help

移动数据

    A = [1 2; 3 4; 5 6]
// 矩阵维度
size(A)
sz = size(A)
size(sz)
//A矩阵第1维度的大小
size(A,1)
//A矩阵第2维度的大小
size(A,2)
// 矩阵两维度的最大值
v = [1 2 3 4]
length(v)
length(A)
导入数据
    // 显示当前目录
pwd
cd ''
ls
// 导入数据
load house.dat
load price.dat
// 显示当前在内存中的变量
who
// 显示更详细的变量信息
whos
// 显示house.dat中的数据集
house
size(house)
size(price)
// 删除某个变量
clear price
// 清理工作空间
clear
// 赋值变量
v = priceY(1:5)
导出数据
    // 存入硬盘
save hello.mat v;
save hello.txt v -ascii;
操作数据
索引操作
    A = [1 2; 3 4; 5 6;]
// 第3行第2列的元素
A(3,2)
// 第2行所有元素
A(2,:)
// 第1列所欲元素
A(:,1)
// 第1行和第3行的所有元素
A([1 3],:)
// 将A的第2列赋值成[10;11;12;]
A(:,2) = [10;11;12;]
// 添加第3列
A = [A, [100; 101; 102;]
// 把A中所有元素放入一个单独的列向量
A(:)
// 结合矩阵
A = [1 2; 3 4; 5 6;]
B = [11 12 13; 14 15 16;]
C = [A B]
C = [A ; B]

计算数据

    A = [1 2; 3 4;5 6]
B = [11 12;13 14; 15 16;]
C = [1 1;2 2;]
A * C
// 对应元素相乘 .表示元素的运算
A.* B
A. ^ 2 v = [1;2;3;]
1 ./v
1 ./A
// 以e为底,以v中元素为指数的幂运算
exp(v)
// 求绝对值
abs(v)
// v的相反数
-v
// 向量每个元素都加1
v + ones(length(v),1)
v + 1
// 转置
A
A'
a = [1 15 2 0,5]
val = max(a)
[val, ind] = max(a)
// 每列的最大值
max(A)
a = [1 15 2 0.5]
a < 5
// 找出小于3的元素并返回索引
find(a < 3)
// 任意行列对角线中的元素加起来都等于相同的值
A = magic(3)
//r 行 c列
[r,c] = find(A >= 7)
// 求和函数
a
sum(a)
// 相乘函数
prod(a)
// 向下取整
floor(a)
//向上取整
ceil(a)
// A的逆矩阵
A = magic(3)
pinv(A)

数据绘制

    t = [0; 0.01;0.98];
t
y1 = sin(2*pi*4*t);
plot(t,y1);
y2 = cos(2*pi*4*t);
plot(t,y2); plot(t,y1);
hold on;
plot(t,y2,'r');
xlabel('time')
ylabel('value')
legend('sin','cos')
title('my plot')
print -dpng 'myplot.png'
help plot
close //
figure(1): plot(t,y1);
figure(2): plot(t,y2);
subplot(1,2,1);
plot(t,y1);
subplot(1,2,2);
plot(t,y2); //
A = magic(5)
imagesc(A)
imagesc(A),colorbar,colormap gray;

控制语句

for循环
    v = zeros(10,1)
for i = 1:10.
v(i) = 2^i;
end;
while循环
    v
while i <= 5.
v(i) = 100;
i = i + 1;
end; while true.
v(i) = 999;
i = i + 1;
if i == 6.
break;
end;
end;
if条件语句
    if v(1) == 1.
disp('The value is one');
elseif v(1) == 2.
disp('The value is two');
else
disp('The value is not one or two');
end;
函数
    squareThisNumber(2)
[a,b] = squareAndCubeThisNumber(5)

Octave的安装的更多相关文章

  1. Octave及其工具包的安装

    Octave的安装: http://blog.sina.com.cn/s/blog_1358485f70102wmpa.html http://www.gnu.org/software/octave/ ...

  2. Ubuntu 18.04 安装 Octave 5.1

    最新版目前只能通过编译安装.折腾了半天终于搞定: 需要使用apt-get install先把各种 dependencies 安装好. 编译JIT需要安装sudo apt-get install llv ...

  3. Octave入门

    Octave/Matlab Tutorial Octave/Matlab Tutorial Basic Operations 你现在已经掌握不少机器学习知识了 在这段视频中 我将教你一种编程语言 Oc ...

  4. 吴恩达-coursera-机器学习-week2

    四.多变量线性回归(Linear Regression with Multiple Variables) 4.1 多维特征 4.2 多变量梯度下降 4.3 梯度下降法实践1-特征缩放 4.4 梯度下降 ...

  5. 科学计算软件——Octave安装

    Octave是一个旨在提供与Matlab语法兼容的开放源代码科学计算及数值分析的工具,是Matlab商业软件的一个强有力的竞争产品. 参考:[ML:Octave Installation] Gener ...

  6. Octave安装和使用

    1. Installer  Download octave4.0 gnuplot 5.0.4 2. Installation (1) Octave 安装Octave时提示发现系统装有Win8,继续安装 ...

  7. Ubuntu通过源代码编译安装Octave 4.0

    本教程/笔记,意在指导在Ubuntu及其它Linux系统上怎样通过源代码安装Octave. Octave简单介绍 Octave是GNU旗下取代matlab的数学工具软件,语法与matlab高度兼容.而 ...

  8. ubuntu 16.04 安装matlab的替代工具Octave及使用指南

    为什么要安装Octave? 它是什么? GNU Octave是自由软件基金会(Free Software Foundation)支持的遵循GPL协议(GNU General Public Licens ...

  9. Octave环境的安装

    Octave是一种解释类的编程语言,并且是GNU项目下的开源软件,与之相对是大家都非常熟悉的matlab,Octave和matlab语法基本上一致,都是用来快速做一些强大的矩阵运算来使用的,最大的不同 ...

随机推荐

  1. Dijkstra的优先队列

    模板 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> ...

  2. Centos设置自带中文输入法

    1.点击屏幕左上角的[系统应用程序]->[系统工具]->[设置] 2.在弹出的设置对话窗中选择Region&language 3.在弹出的[区域和语言]对话窗中,点击左下角“+”, ...

  3. private: CRITICAL_SECTION m_cs;

    CRITICAL_SECTION m_cs;   //临界区 私有数据成员  pop  数据结构 push 临界区 保护 2.类CCriticalSection的对象表示一个“临界区”,它是一个用于同 ...

  4. 【Java程序】tesseract_orc java上的一种实现方法

    今天想着把以前做过的一个Android的文字检测识别应用好好的回顾一下,因为以前写java程序,目的就是能用就行,不会仔细看每一个部分代码,也不会记他们的用法,不回会去查API,借鉴别人的例程,用过就 ...

  5. jquery 弹出框效果

    html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...

  6. asp.net相关的一些代码

    显示目录下的内容 using System.IO; DirectoryInfo di = new DirectoryInfo(Server.MapPath("Views/video" ...

  7. 【MVC】Spring WebFlux

    一.什么是 Spring WebFlux 下图截自 Spring Boot 官方网站: 结合上图,在了解 Spring WebFlux 之前,我们先来对比说说什么是 Spring MVC,这更有益我们 ...

  8. ecshop整合discuz教程完美教程

    所需软件: ecshop安装包:    ECShop_V2.7.3_UTF8_release1106.rarucenter安装包:   UCenter_1.6.0_SC_UTF8.zipdiscuz! ...

  9. 【Windows、SVN】在Windows服务器下安装SVN,并在客户端能维护代码版本

    1.分别在客户端和服务器端安装软件 在网上搜索一下安装包的下载地址(这里暂不介绍) 得到2个安装文件 Server是装在服务器端的,另外一个装在客户端 2.安装SVN服务器端 基本一致下一步即可 特殊 ...

  10. 树莓派2代 B型 4核 1G内存 raspberry pi 2 model B

    树莓派技术交流群:318799602 期盼已久的PI2 已经到货,Element14版,非RS版本.诚信卖家如期发货,不会像某些淘宝卖家一样,没有货还标注现货,发货时间一拖再拖. 树莓派的最新力作!! ...