深度学习与机器学习区别_深度学习和机器学习-程序员宅基地

技术标签: 机器学习  深度学习  人工智能  # TensorFlow  

深度学习与机器学习区别

本文目录:

一、特征提取方面

1.1、机器学习

1.2、深度学习

1.3、机器学习特征提取

1.4、深度学习特征提取

1.5、深度学习特征提取例子

二、数据量和计算性能要求

三、算法代表

3.1、朴素贝叶斯算法

3.2、决策树

四、神经网络


一、特征提取方面

 1.1、机器学习

  机器学习是一种人工智能技术,在给定数据集的情况下,可以自动学习模式并使用学习结果来预测或做出决策。它依靠数学和统计学算法来构建模型,这些模型可以使计算机在没有明确编程的情况下自主学习。

  机器学习是一种人工智能的分支,是指计算机系统能够通过对大量数据进行分析和学习,自动识别和预测模式。

  简单来说,机器学习就是让计算机通过数据学习来进行人类智力水平的任务。

  以下是一些机器学习中的常用概念:

  1. 数据集:指用于训练和测试机器学习算法的数据。
  2. 特征:指对数据集的描述,可以为数字或文本等格式。
  3. 模型:是机器学习算法的具体实现,可以根据特征和目标值进行训练。
  4. 监督学习:通过对输入数据和已知结果的匹配进行训练,从而预测未知数据的输出结果。
  5. 非监督学习:从未标记的数据中发现模式,从而推断出数据的结构和关系。
  6. 深度学习:一种基于神经网络的机器学习技术,可以模拟人脑的神经网络结构,利用多个隐层对数据进行学习和分类。

  机器学习广泛应用于许多领域,如电子商务、金融、医疗、自然语言处理、计算机视觉和自主驾驶汽车等。常见的机器学习算法包括决策树、逻辑回归、支持向量机、神经网络和随机森林。

  机器学习的特征工程步骤是要靠手动完成的,而且需要大量领域专业知识。

1.2、深度学习

   深度学习是一种机器学习的方法,它利用由多个层次构成的神经网络来模拟和解决复杂问题。它的核心思想是通过层次化的学习和特征提取,从而逐步提高模型对数据的表征能力和预测能力。在深度学习中,核心技术包括反向传播算法、卷积神经网络、循环神经网络、生成对抗网络等。深度学习具有广泛的应用场景,如图像识别、语音识别、自然语言处理、人工智能等领域。

  深度学习通常由多个层组成,它们通常将更简单的模型组合在一起,将数据从一层传递到另-层来构建更复杂的模型。通过训练大量数据自动得出模型,不需要人工特征提取环节。

  深度学习算法试图从数据中学习高级功能,这是深度学习的一个非常独特的部分。因此,减少了为每个问题开发新特征提取器的任务。适合用在难提取特征的图像、语音、自然语言处理领域。

1.3、机器学习特征提取

  机器学习特征提取是指从原始数据中提取出有用的特征,以便用于机器学习算法的训练和模型的建立。这些特征可以是数值、文字、图像甚至声音等。通过特征提取,可以帮助机器学习算法更好地理解数据,实现更好的数据分析和分类。

  特征提取的目标是找到一组最能代表数据的特征集合,这些特征可以使机器学习算法从数据中学到更有意义的信息。

  特征提取的过程包括数据预处理、特征选择、特征提取和特征表示等步骤。在这些过程中,需要考虑到数据的种类、数量、质量和分布等因素,以及机器学习算法的适用性和需求等因素。

1.4、深度学习特征提取

  深度学习特征提取是指利用深度神经网络模型对原始数据进行自动学习提取特征的过程,使得原始数据能够更好地表示为一组高层次、抽象的特征,从而能够更好地应用于分类、识别、检测等任务中。

  深度学习特征提取在计算机视觉、自然语言处理、语音识别等领域被广泛使用。深度学习特征提取的具体方法包括卷积神经网络(CNN)、循环神经网络(RNN)等。通过使用深度神经网络对数据进行特征提取,可以大大提高模型的准确度和鲁棒性。

  深度学习可以通过堆叠多层神经网络来学习输入数据的复杂特征。

  在深度学习中,每一层神经网络都可以看作是对输入数据的一种映射,而每一层的输出都可以作为下一层的输入。通过不断地堆叠多层神经网络并对权重进行训练,可以逐渐提取出更复杂的特征,从而达到更精确的分类和预测。

1.5、深度学习特征提取例子

  以下是一个使用Keras实现的深度学习模型,用于对手写数字进行分类。

  该模型包含两个卷积层和两个全连接层,可以自动学习提取出手写数字的特征,并将其归类为数字0到9中的一个。 

import numpy as np
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Flatten, Conv2D, MaxPooling2D
from keras.utils import np_utils

# 加载MNIST数据集并进行预处理 

# 加载MNIST数据集并进行预处理
(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train = X_train.reshape(X_train.shape[0], 28, 28, 1).astype('float32') / 255
X_test = X_test.reshape(X_test.shape[0], 28, 28, 1).astype('float32') / 255
y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)

# 构建深度学习模型 

# 构建深度学习模型
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))

# 编译模型 

# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# 训练模型并评估性能

# 训练模型并评估性能
model.fit(X_train, y_train, epochs=10, batch_size=32, verbose=1)
score = model.evaluate(X_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

  在这个例子中,我们使用了卷积层和最大池化层来提取手写数字的视觉特征,然后通过全连接层将其转化为数字标签的预测。通过反向传播算法对权重进行训练,我们可以让模型自动学习提取特征的过程,从而实现更高效和准确的分类。

二、数据量和计算性能要求

  机器学习需要的执行时间远少于深度学习,深度学习参数往很庞大,需要通过大量数据的多次优化来训练参数。

第一、深度学习需要大量的训练数据集。
第二、训练深度神经网络需要大量的算力。

可能要花费数天、甚至数周的时间,才能使用数百万张图像的数据集训练出一个深度网络。

所以深度学习通常。
1.需要强大的GPU服务器来进行计算。
2.全面管理的分布式训练与预测服务--比如谷歌 TensorFlow 云机器学习平台。

三、算法代表

  机器学习:朴素贝叶斯、决策树等

3.1、朴素贝叶斯算法

  朴素贝叶斯算法是一种基于贝叶斯定理和特征条件独立假设的分类算法。贝叶斯定理是一种概率理论,它描述了在已知某些条件下,另一个事件发生的概率。

  朴素贝叶斯算法假设所有特征都是相互独立的,即每个特征变量与其他特征变量无关。基于这个假设,朴素贝叶斯算法可以通过观察已经有标签的数据集来预测新数据的标签类别。

  朴素贝叶斯算法常用于文本分类,垃圾邮件过滤和情感分析等应用。

  以下是使用Python实现朴素贝叶斯算法模型的示例代码:

import numpy as np

class NaiveBayes:
    def __init__(self, n_classes):
        self.n_classes = n_classes
        self.priors = None
        self.posteriors = None
    
    def fit(self, X, y):
        n_samples, n_features = X.shape
        self.priors = np.zeros(self.n_classes)
        self.posteriors = np.zeros((self.n_classes, n_features))
        for c in range(self.n_classes):
            X_c = X[y == c]
            self.priors[c] = len(X_c) / n_samples
            self.posteriors[c] = (X_c.sum(axis=0) + 1) / (len(X_c) + 1)
    
    def predict(self, X):
        y_pred = []
        for x in X:
            posteriors = []
            for c in range(self.n_classes):
                prior = np.log(self.priors[c])
                likelihood = np.sum(np.log(self.posteriors[c]) * x)
                posterior = prior + likelihood
                posteriors.append(posterior)
            y_pred.append(np.argmax(posteriors))
        return y_pred

  这个实现使用了拉普拉斯平滑来避免零概率问题,并将概率转换为对数形式以避免数值下溢问题。fit方法用于训练朴素贝叶斯模型,而predict方法用于对新样本进行分类。

3.2、决策树

  决策树是一种基于树形结构的分类和回归模型,常用于数据挖掘和机器学习领域。它通过对数据集进行递归地分割,不断对特征进行选择,直到最终得到一个递归的决策树。

  决策树的节点表示数据集中的一个特征,边表示这个特征的取值,叶子节点表示分类结果或回归结果。

  在分类问题中,决策树将一个样本从根节点分到一个特定的叶子节点,该叶子节点的类别即为该样本的类别;

  在回归问题中,决策树将一个样本从根节点分到一个特定的叶子节点,并且该叶子节点的值即为该样本的预测值。

  决策树具有可解释性好、易于理解和使用等优点,在实际应用中也有广泛的应用。

四、神经网络

  神经网络是一种模拟人类大脑神经系统运作方式的计算机程序。它由大量的人工神经元(模拟生物神经元)通过一定的连接方式组成,通过学习和训练,可以识别、分类、模拟和预测各种事物,具有良好的自适应性和非线性映射能力,在人工智能、图像识别、自然语言处理、语音识别等领域有广泛应用。

  神经网络包括前馈神经网络、递归神经网络等多种结构,其中前馈神经网络最为常见。

  神经网络实现逻辑与运算的示例代码

  神经网络实现逻辑与运算。

  逻辑与运算是两个二进制数都为1时结果为1,否则为0的运算。

  神经网络可以通过学习逻辑与运算的输入与输出之间的映射,来实现逻辑与运算。

  下面是一个简单的神经网络实现逻辑与运算的示例代码:

import numpy as np
# 输入数据和标签
x = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
y = np.array([[0], [0], [0], [1]])

# 定义神经网络 

# 定义神经网络
class NeuralNetwork:
    def __init__(self):
        np.random.seed(1)
        self.weights = 2 * np.random.random((2, 1)) - 1

    def sigmoid(self, x):
        return 1 / (1 + np.exp(-x))

    def sigmoid_derivative(self, x):
        return x * (1 - x)

    def train(self, x, y, iterations):
        for i in range(iterations):
            output = self.predict(x)
            error = y - output
            adjustment = np.dot(x.T, error * self.sigmoid_derivative(output))
            self.weights += adjustment

    def predict(self, x):
        return self.sigmoid(np.dot(x, self.weights))

# 训练神经网络

# 训练神经网络
neural_network = NeuralNetwork()
neural_network.train(x, y, 10000)

# 预测

# 预测
print(neural_network.predict(np.array([0, 0])))
print(neural_network.predict(np.array([0, 1])))
print(neural_network.predict(np.array([1, 0])))
print(neural_network.predict(np.array([1, 1])))

输出结果为:

[0.5]
[0.2689864]
[0.2689864]
[0.11738518]

由于神经网络是基于概率的模型,输出的结果并非完全准确,

但可以看出对于输入为(0,0)、(0,1)和(1,0)时,输出都接近于0,

对于输入为(1,1)时,输出接近于1,符合逻辑与运算的结果。

             推荐阅读:

给照片换底色(python+opencv) 猫十二分类 基于大模型的虚拟数字人__虚拟主播实例

计算机视觉__基本图像操作(显示、读取、保存) 直方图(颜色直方图、灰度直方图) 直方图均衡化(调节图像亮度、对比度)

 语音识别实战(python代码)(一)

 人工智能基础篇

 计算机视觉基础__图像特征

93d65dbd09604c4a8ed2c01df0eebc38.png

 matplotlib 自带绘图样式效果展示速查(28种,全)

074cd3c255224c5aa21ff18fdc25053c.png

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

fe88b78e78694570bf2d850ce83b1f69.png

cb4b0d4015404390a7b673a2984d676a.png

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

 Python 3D可视化(一)

 让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)

e84d6708316941d49a79ddd4f7fe5b27.png

938bc5a8bb454a41bfe0d4185da845dc.jpeg

0a4256d5e96d4624bdca36433237080b.png

 python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

python爱心源代码集锦(18款)

dc8796ddccbf4aec98ac5d3e09001348.jpeg

0f09e73712d149ff90f0048a096596c6.png

40e8b4631e2b486bab2a4ebb5bc9f410.png

 Python中Print()函数的用法___实例详解(全,例多)

 Python函数方法实例详解全集(更新中...)

 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

09e08f86f127431cbfdfe395aa2f8bc9.png

用代码过中秋,python海龟月饼你要不要尝一口?

 python练习题目录

03ed644f9b1d411ba41c59e0a5bdcc61.png

daecd7067e7c45abb875fc7a1a469f23.png

17b403c4307c4141b8544d02f95ea06c.png

草莓熊python turtle绘图(风车版)附源代码

 ​草莓熊python turtle绘图代码(玫瑰花版)附源代码

 ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

4d9032c9cdf54f5f9193e45e4532898c.png

c5feeb25880d49c085b808bf4e041c86.png

 巴斯光年python turtle绘图__附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

80007dbf51944725bf9cf4cfc75c5a13.png

1ab685d264ed4ae5b510dc7fbd0d1e55.jpeg

1750390dd9da4b39938a23ab447c6fb6.jpeg

 Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

2023年4月多家权威机构____编程语言排行榜__薪酬状况

aa17177aec9b4e5eb19b5d9675302de8.png

38266b5036414624875447abd5311e4d.png

6824ba7870344be68efb5c5f4e1dbbcf.png

 手机屏幕坏了____怎么把里面的资料导出(18种方法)

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

​​

vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)

fea225cb9ec14b60b2d1b797dd8278a2.png

bba02a1c4617422c9fbccbf5325850d9.png

37d6aa3e03e241fa8db72ccdfb8f716b.png

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

5d409c8f397a45c986ca2af7b7e725c9.png

6176c4061c72430eb100750af6fc4d0e.png

1f53fb9c6e8b4482813326affe6a82ff.png

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码) HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

fffa2098008b4dc68c00a172f67c538d.png

5218ac5338014f389c21bdf1bfa1c599.png

c6374d75c29942f2aa577ce9c5c2e12b.png

 tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

 Tomcat端口配置(详细)

 Tomcat 启动闪退问题解决集(八大类详细)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_69553582/article/details/131406297

智能推荐

18个顶级人工智能平台-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏27次。来源:机器人小妹  很多时候企业拥有重复,乏味且困难的工作流程,这些流程往往会减慢生产速度并增加运营成本。为了降低生产成本,企业别无选择,只能自动化某些功能以降低生产成本。  通过数字化..._人工智能平台

electron热加载_electron-reloader-程序员宅基地

文章浏览阅读2.2k次。热加载能够在每次保存修改的代码后自动刷新 electron 应用界面,而不必每次去手动操作重新运行,这极大的提升了开发效率。安装 electron 热加载插件热加载虽然很方便,但是不是每个 electron 项目必须的,所以想要舒服的开发 electron 就只能给 electron 项目单独的安装热加载插件[electron-reloader]:// 在项目的根目录下安装 electron-reloader,国内建议使用 cnpm 代替 npmnpm install electron-relo._electron-reloader

android 11.0 去掉recovery模式UI页面的选项_android recovery 删除 部分菜单-程序员宅基地

文章浏览阅读942次。在11.0 进行定制化开发,会根据需要去掉recovery模式的一些选项 就是在device.cpp去掉一些选项就可以了。_android recovery 删除 部分菜单

mnn linux编译_mnn 编译linux-程序员宅基地

文章浏览阅读3.7k次。https://www.yuque.com/mnn/cn/cvrt_linux_mac基础依赖这些依赖是无关编译选项的基础编译依赖• cmake(3.10 以上)• protobuf (3.0 以上)• 指protobuf库以及protobuf编译器。版本号使用 protoc --version 打印出来。• 在某些Linux发行版上这两个包是分开发布的,需要手动安装• Ubuntu需要分别安装 libprotobuf-dev 以及 protobuf-compiler 两个包•..._mnn 编译linux

利用CSS3制作淡入淡出动画效果_css3入场效果淡入淡出-程序员宅基地

文章浏览阅读1.8k次。CSS3新增动画属性“@-webkit-keyframes”,从字面就可以看出其含义——关键帧,这与Flash中的含义一致。利用CSS3制作动画效果其原理与Flash一样,我们需要定义关键帧处的状态效果,由CSS3来驱动产生动画效果。下面讲解一下如何利用CSS3制作淡入淡出的动画效果。具体实例可参考刚进入本站时的淡入效果。1. 定义动画,名称为fadeIn@-webkit-keyf_css3入场效果淡入淡出

计算机软件又必须包括什么,计算机系统应包括硬件和软件两个子系统,硬件和软件又必须依次分别包括______?...-程序员宅基地

文章浏览阅读2.8k次。计算机系统应包括硬件和软件两个子系统,硬件和软件又必须依次分别包括中央处理器和系统软件。按人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的机器系统。计算机是脑力的延伸和扩充,是近代科学的重大成就之一。计算机系统由硬件(子)系统和软件(子)系统组成。前者是借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是系统赖以工作的实体。后者是各种程序和文件,用于指挥全系统按指定的要求进行..._计算机系统包括硬件系统和软件系统 软件又必须包括

随便推点

进程调度(一)——FIFO算法_进程调度fifo算法代码-程序员宅基地

文章浏览阅读7.9k次,点赞3次,收藏22次。一 定义这是最早出现的置换算法。该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。但该算法与进程实际运行的规律不相适应,因为在进程中,有些页面经常被访问,比如,含有全局变量、常用函数、例程等的页面,FIFO 算法并不能保证这些页面不被淘汰。这里,我_进程调度fifo算法代码

mysql rownum写法_mysql应用之类似oracle rownum写法-程序员宅基地

文章浏览阅读133次。rownum是oracle才有的写法,rownum在oracle中可以用于取第一条数据,或者批量写数据时限定批量写的数量等mysql取第一条数据写法SELECT * FROM t order by id LIMIT 1;oracle取第一条数据写法SELECT * FROM t where rownum =1 order by id;ok,上面是mysql和oracle取第一条数据的写法对比,不过..._mysql 替换@rownum的写法

eclipse安装教程_ecjelm-程序员宅基地

文章浏览阅读790次,点赞3次,收藏4次。官网下载下载链接:http://www.eclipse.org/downloads/点击Download下载完成后双击运行我选择第2个,看自己需要(我选择企业级应用,如果只是单纯学习java选第一个就行)进入下一步后选择jre和安装路径修改jvm/jre的时候也可以选择本地的(点后面的文件夹进去),但是我们没有11版本的,所以还是用他的吧选择接受安装中安装过程中如果有其他界面弹出就点accept就行..._ecjelm

Linux常用网络命令_ifconfig 删除vlan-程序员宅基地

文章浏览阅读245次。原文链接:https://linux.cn/article-7801-1.htmlifconfigping <IP地址>:发送ICMP echo消息到某个主机traceroute <IP地址>:用于跟踪IP包的路由路由:netstat -r: 打印路由表route add :添加静态路由路径routed:控制动态路由的BSD守护程序。运行RIP路由协议gat..._ifconfig 删除vlan

redux_redux redis-程序员宅基地

文章浏览阅读224次。reduxredux里要求把数据都放在公共的存储区域叫store里面,组件中尽量少放数据,假如绿色的组件要给很多灰色的组件传值,绿色的组件只需要改变store里面对应的数据就行了,接着灰色的组件会自动感知到store里的数据发生了改变,store只要有变化,灰色的组件就会自动从store里重新取数据,这样绿色组件的数据就很方便的传到其它灰色组件里了。redux就是把公用的数据放在公共的区域去存..._redux redis

linux 解压zip大文件(解决乱码问题)_linux 7za解压中文乱码-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏6次。unzip版本不支持4G以上的压缩包所以要使用p7zip:Linux一个高压缩率软件wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2tar jxvf p7zip_9.20.1_src_all.tar.bz2cd p7zip_9.20.1make && make install 如果安装失败,看一下报错是不是因为没有下载gcc 和 gcc ++(p7_linux 7za解压中文乱码