【大厂AI课学习笔记】【1.6 人工智能基础知识】(3)神经网络
深度学习是机器学习中一种基于对数据进行表征学习的算法。观测值(例如一幅草莓照片)可以使用
多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。

深度学习的最主要特征是使用神经网络作为计算模型。神经网络模型 得名于其对于动物神经元传递信息方式的模拟。
实际上,现在的神经网络模型,和神经,已经没有特别大的关系了。
深度学习的深度,一般指神经网络的层数。一般有2-3个隐藏层;深层神经网络,隐藏层可能有150层;
背景知识梳理:
神经网络的定义
神经网络(Neural Networks)是一种模拟人脑神经元连接方式的计算模型,用于处理信息、学习和识别模式。它由大量相互连接的神经元(或称为节点、单元)组成,每个神经元接收来自其他神经元的输入信号,并根据这些信号产生输出。神经网络通过调整神经元之间的连接权重来学习和适应新数据。
发展脉络
- 起源:神经网络的灵感来源于生物学中的神经系统。1943年,心理学家Warren McCulloch和数学家Walter Pitts提出了第一个基于生物神经系统的计算模型。
- 感知机:1957年,Frank Rosenblatt发明了感知机(Perceptron),这是一种简单的二元线性分类器,可以学习并解决一些基本问题。然而,它不能处理异或(XOR)等非线性问题。
- 反向传播算法:1986年,Rumelhart、Hinton和Williams提出了反向传播(Backpropagation)算法,这是训练多层神经网络的关键技术。它允许网络学习更复杂的非线性模式。
- 深度学习:2006年,Hinton等人提出了“深度学习”的概念,并展示了如何使用无监督预训练和有监督微调来训练深度置信网络(DBN)。这标志着深度学习时代的开始。
- 卷积神经网络(CNN):Yann LeCun等人在1998年提出了卷积神经网络(Convolutional Neural Networks, CNN),用于图像识别。CNN在图像处理任务中表现出色。
- 循环神经网络(RNN):RNN是为了处理序列数据而设计的,它能够捕捉序列中的时间依赖性。RNN在自然语言处理(NLP)和语音识别等领域有广泛应用。
- 生成对抗网络(GAN):2014年,Goodfellow等人提出了生成对抗网络(Generative Adversarial Networks, GAN),它由生成器和判别器两个神经网络组成,用于生成逼真的新数据。
- Transformer架构:2017年,Vaswani等人提出了Transformer架构,它完全基于自注意力机制(self-attention),并在自然语言处理任务中取得了巨大成功,如BERT、GPT等模型。
神经网络的类型与关键技术构成
- 前馈神经网络:信息从输入层单向传递到输出层,没有循环或反馈连接。关键技术包括激活函数(如ReLU、sigmoid、tanh等)、权重初始化和正则化(如L1、L2正则化)。
- 卷积神经网络(CNN):专门用于处理图像数据。关键技术包括卷积层、池化层、全连接层和激活函数。CNN通过卷积层提取图像特征,并通过池化层降低数据维度。
- 循环神经网络(RNN):处理序列数据,如文本或时间序列数据。关键技术包括循环连接、长短时记忆单元(LSTM)和门控循环单元(GRU),用于捕捉序列中的长期依赖性。
- 生成对抗网络(GAN):由生成器和判别器组成,通过对抗性训练生成新数据。关键技术包括生成器和判别器的设计、损失函数的选择以及训练策略。
- 自编码器:用于无监督学习,尝试复制其输入到输出。关键技术包括编码器和解码器的设计,以及损失函数(如均方误差)的选择。
- Transformer架构:基于自注意力机制处理序列数据。关键技术包括多头自注意力机制、位置编码和前馈神经网络层。
如何构建神经网络
构建神经网络通常涉及以下步骤:
- 定义网络结构:确定输入层、隐藏层和输出层的神经元数量以及层与层之间的连接方式。
- 初始化权重和偏置:随机初始化神经元的权重和偏置值。
- 选择激活函数:为神经网络的每一层选择一个激活函数。
- 定义损失函数:根据任务类型(分类、回归等)选择合适的损失函数。
- 选择优化器:如梯度下降、随机梯度下降(SGD)、Adam等,用于更新权重和偏置以最小化损失函数。
- 训练网络:使用训练数据集进行前向传播计算损失,然后通过反向传播算法计算梯度并更新权重和偏置。
- 评估网络性能:使用验证数据集评估网络的性能,并根据需要进行调整(如超参数调优)。
- 应用网络:使用测试数据集评估网络的最终性能,并将其应用于实际任务中。
示例
使用TensorFlow构建简单的神经网络进行MNIST手写数字分类
import tensorflow as tf
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.losses import SparseCategoricalCrossentropy
from tensorflow.keras.optimizers import Adam # 加载MNIST数据集
(train_images, train_labels), (test_images, test_labels) = mnist.load_data() # 数据预处理:归一化和展平
train_images = train_images.reshape((60000, 28 * 28)) / 255.0
test_images = test_images.reshape((10000, 28 * 28)) / 255.0 # 构建神经网络模型
model = Sequential([ Dense(128, activation='relu', input_shape=(28 * 28,)), # 输入层与第一个隐藏层 Dense(64, activation='relu'), # 第二个隐藏层 Dense(10, activation='softmax') # 输出层,10个类别(0-9)
]) # 编译模型:指定损失函数、优化器和评估指标
model.compile(optimizer=Adam(), loss=SparseCategoricalCrossentropy(), metrics=['accuracy']) # 训练模型
model.fit(train_images, train_labels, epochs=5, batch_size=32) # 评估模型性能
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Test accuracy: {test_acc}')
这段代码使用TensorFlow库构建了一个简单的三层神经网络(包括输入层、两个隐藏层和一个输出层),用于对MNIST手写数字数据集进行分类。通过调整网络结构、激活函数、损失函数和优化器等组件,可以进一步优化模型的性能。
相关文章:
【大厂AI课学习笔记】【1.6 人工智能基础知识】(3)神经网络
深度学习是机器学习中一种基于对数据进行表征学习的算法。观测值(例如一幅草莓照片)可以使用 多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。 深度学习的最主要特征是使用神经网络作为计算模型。神经网络模型 …...
指针的基本含义及其用法
1.前言 在学习C语言的时候,我们会经常接触一个概念,指针和地址,关于这两个概念很多人并不能理解地十分透彻,接下来我将详细介绍一下这两者的概念 2.地址 我们知道计算机的上CPU(中央处理器)在处理数据的时…...
黄金交易策略(Nerve Nnife.mql4):趋势做单
完整EA:Nerve Knife.ex4黄金交易策略_黄金趋势ea-CSDN博客 当大小趋势相同行情走向也相同,就会开仓做顺势单,并会顺势追单,以达到快速止盈平仓的效果。大趋势追求稳定,小趋势追求敏捷,行情走向比小趋势更敏…...
HiveSQL——条件判断语句嵌套windows子句的应用
注:参考文章: SQL条件判断语句嵌套window子句的应用【易错点】--HiveSql面试题25_sql剁成嵌套判断-CSDN博客文章浏览阅读920次,点赞4次,收藏4次。0 需求分析需求:表如下user_idgood_namegoods_typerk1hadoop1011hive1…...
ClickHouse--01--简介
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1. ClickHouse 简介官网: [https://clickhouse.com/docs/zh](https://clickhouse.com/docs/zh) 1.1 大数据处理场景1.2 什么是 ClickHouse1.3 OLAP 场景…...
【Django-ninja】在django ninja中处理异常
1. 直接抛内置异常 Django ninja内置了一些常用异常类。 from ninja.errors import HttpErrorapi.get("/some/resource") def some_operation(request):if True:raise HttpError(503, "Service Unavailable. Please retry later.")2. 覆写异常类 可以覆…...
【并发编程】原子累加器
📝个人主页:五敷有你 🔥系列专栏:并发编程 ⛺️稳重求进,晒太阳 JDK8之后有专门做累加的类,效率比自己做快数倍以上 累加器性能比较 参数是方法 // supplier 提供者 无中生有 ()->结果// func…...
Java 基于微信小程序的电子商城购物系统
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
Git Push -f 命令详解
直接看原文: Git Push -f 命令详解 - 玩转Linux - SegmentFault 思否 -------------------------------------------------------------------------------------------------------------------------------- git push -f 这个命令的作用是将自己本地仓库的代码直接推送至仓…...
【LeetCode每日一题】前缀和的例题1248. 统计「优美子数组」974. 和可被 K 整除的子数组
leetcode 724. 寻找数组的中心索引 题目描述 给定一个整数类型的数组 nums,请编写一个能够返回数组 “中心索引” 的方法。 我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。 如果数组不存在中心索引&…...
备战蓝桥杯---数学基础3
本专题主要围绕同余来讲: 下面介绍一下基本概念与定理: 下面给出解这方程的一个例子: 下面是用代码实现扩展欧几里得算法: #include<bits/stdc.h> using namespace std; int gcd(int a,int b,int &x,int &y){if(b…...
[算法学习] 逆元与欧拉降幂
费马小定理 两个条件: p为质数a与p互质 逆元 如果要求 x^-1 mod p ,用快速幂求 qmi(x,p-2) 就好 欧拉函数 思路:找到因数 i,phi / i * (i-1),除干净,判断最后的n 欧拉降幂 欧拉定理 应用示例 m! 是一个…...
【Chrono Engine学习总结】4-vehicle-4.1-vehicle的基本概念
由于Chrono的官方教程在一些细节方面解释的并不清楚,自己做了一些尝试,做学习总结。 1、基本介绍 Vehicle Overview Vehicle Mannel Vehicle的官方demo 1.1 Vehicle的构型 一个车辆由许多子系统构成:悬挂、转向、轮子/履带、刹车/油门、动…...
腾讯云4核8G服务器多少钱?2024精准报价
腾讯云4核8G服务器S5和轻量应用服务器优惠价格表,轻量应用服务器和CVM云服务器均有活动,云服务器CVM标准型S5实例4核8G配置价格15个月1437.3元,5年6490.44元,标准型SA2服务器1444.8元一年,轻量应用服务器4核8G12M带宽一…...
汽车出租管理系统
文章目录 汽车出租管理系统一、系统演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目源码(9.9¥带走) 汽车出租管理系统 一、系统演示 汽车租赁系统 二、项目介绍 语言:java 框架:SpringBoot、…...
使用SM4国密加密算法对Spring Boot项目数据库连接信息以及yaml文件配置属性进行加密配置(读取时自动解密)
一、前言 在业务系统开发过程中,我们必不可少的会使用数据库,在应用开发过程中,数据库连接信息往往都是以明文的方式配置到yaml配置文件中的,这样有密码泄露的风险,那么有没有什么方式可以避免呢?方案当然是有的,就是对数据库密码配置的时候进行加密,然后读取的时候再…...
【LeetCode每日一题】二维前缀和基本概念与案例
二维前缀和 根据某个块块 的 左上角坐标,和右下角坐标 求出 块块的累加和。 304. 二维区域和检索 - 矩阵不可变 /*** param {number[][]} matrix*/ var NumMatrix function(matrix) {let row matrix.length;let col matrix[0].length;// 初始化一个二维数组&am…...
计算机网络——网络安全
计算机网络——网络安全 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家, [跳转到网站](https://www.captainbed.cn/qianqiu) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 网络安全何…...
SQl 注入 - 利用报错函数updatexml及extracevalue
环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、updatexml() 函数 1. 使用前提: 在 MySQL 高版本中(大于5.1版本)添加了对 XML 文档进行查询和修改的函数,包括 updatexml() 和 extractvalue()。 2. 显示错误处理: 在…...
ChatGPT高效提问—prompt实践(生成VBA)
ChatGPT高效提问—prompt实践(生成VBA) 2. 生成VBA函数操作Excel 当前Excel表格数据无背景颜色,区分不明显。假如我们想美化数据展示效果,把标题行设置为浅蓝色,其余奇数行设置为橙色,该怎么操作呢?这次我们基于ChatGPT写一个prompt来创建VBA函数。 输入prompt…...
第07章 FastMCP 把检索封装成 Agent 工具
第07章 FastMCP 把检索封装成 Agent 工具 工单知识库已经能在 Python 进程内被普通函数调用,但要让外部 Agent、Web 后端或其他语言的客户端使用这份能力,函数级别的接口不够:缺少协议、缺少描述、缺少跨进程通讯。MCP(Model Cont…...
LLM Notebooks:从零构建RAG问答系统的实践指南
1. 项目概述:一个面向大语言模型实践的“笔记本”仓库最近在GitHub上闲逛,发现了一个挺有意思的仓库,叫qianniuspace/llm_notebooks。光看名字,llm_notebooks,大语言模型笔记本,这指向性就非常明确了。这大…...
VHD2VL:破解硬件描述语言转换难题的开源解决方案
VHD2VL:破解硬件描述语言转换难题的开源解决方案 【免费下载链接】vhd2vl 项目地址: https://gitcode.com/gh_mirrors/vh/vhd2vl 在FPGA和ASIC设计领域,技术团队常常面临VHDL与Verilog两种硬件描述语言之间的转换挑战。当项目需要跨语言协作、工…...
Java 大厂面试 200 题完整版含答案解析
前言本文整理了近两年从阿里、腾讯、字节、美团、京东、拼多多等大厂面试中高频出现的 200 道 Java 面试题,覆盖 Java 基础、集合、并发、JVM、Spring、MySQL、Redis、消息队列、分布式、场景设计 等核心模块,每题都附有简明扼要的答案解析,助…...
终极FGO自动化助手:告别枯燥刷本,每天节省3小时游戏时间
终极FGO自动化助手:告别枯燥刷本,每天节省3小时游戏时间 【免费下载链接】FGA Auto-battle app for F/GO Android 项目地址: https://gitcode.com/gh_mirrors/fg/FGA Fate/Grand Automata(简称FGA)是一款专为Fate/Grand Or…...
基于Fire2012算法与FastLED库的Arduino LED篝火制作全攻略
1. 项目概述:用代码点燃一场永不熄灭的数字篝火夏夜、星空、朋友围坐,篝火带来的温暖与氛围是露营的灵魂。但现实是,很多营地禁止明火,或者在城市阳台、室内空间,生一堆真正的火既不安全也不现实。作为一名玩了十多年A…...
数据中心碳减排:工作负载迁移与服务器调度优化
1. 数据中心碳减排技术概述 在数字经济时代,数据中心作为信息基础设施的核心载体,其能源消耗和碳排放问题日益凸显。据统计,全球数据中心电力消耗已占全球总用电量的1-2%,且随着AI、云计算等技术的快速发展,这一比例仍…...
Apache Burr框架:构建可观测有状态数据应用的核心原理与实践
1. 项目概述:一个用于构建和评估数据产品的Python框架如果你正在处理数据密集型应用,比如推荐系统、个性化广告或者任何需要根据用户行为实时调整策略的场景,你肯定遇到过这样的困境:模型训练和离线评估做得再好,一旦上…...
DIY蓝牙游戏手柄:基于Bluefruit EZ-Key的免编程硬件制作全攻略
1. 项目概述与设计思路几年前,我还在用有线手柄在电脑上打游戏,那根线总是缠来缠去,桌面也乱糟糟的。后来市面上无线手柄选择多了,但总感觉少了点自己动手的乐趣,功能也千篇一律。直到我开始接触像Adafruit Bluefruit …...
【2026年阿里巴巴集团暑期实习- 5月16日-算法岗-第一题- 分组计数】(题目+思路+JavaC++Python解析+在线测试)
题目内容 给定 nnn 个人的权值序列 a1,a2,…,ana_1,a_2,\dots,a_na...
