无题
NLP基石双雄:从N-Gram到BoW的终极实战指南
一、N-Gram模型
1.1创建⼀个Bigram字符预测模型
1234567# 构建一个玩具数据集corpus = [ "我喜欢吃苹果", "我喜欢吃香蕉", "她喜欢吃葡萄", "他不喜欢吃香蕉", "他喜欢吃苹果", "她喜欢吃草莓"]
12345678# 定义一个分词函数,将文本转换为单个字符的列表def tokenize(text): return [char for char in text] # 将文本拆分为字符列表# 对每个文本进行分词,并打印出对应的单字列表print("单字列表:") for text in corpus: tokens = tokenize(text) print(tokens)
1234567单字列表:['我', '喜', ' ...
无题
AGI的星火?:解码语言大模型进化史与文明重构
序章:机器之眼中的文艺复兴
在斯坦福大学的地下档案室,保存着1955年麦卡锡手写的"人工智能"原始提案。泛黄的稿纸上,他用铅笔勾勒的智能体结构图,与GPT-4的transformer架构竟有惊人的拓扑相似性。这种跨越68年的认知共振,暗示着人类正在经历第四次认知革命——从甲骨灼纹到神经网络,信息载体的进化正在重塑文明的底层逻辑。
一、语言之熵——从苏美尔泥板到参数空间
1.1 文字载体的五次跃迁
在乌鲁克遗址出土的楔形文字泥板,用600个符号记录货物交易;殷墟甲骨文的灼纹占卜,构建起神权话语体系;古腾堡印刷术带来的信息爆炸,直接催生宗教改革与科学革命。而今,语言模型的词嵌入空间,正以==768维向量==重构知识表达范式。剑桥大学研究显示,GPT-4的词向量空间中,"自由"与"约束"的余弦相似度达到0.73,远超人类直觉认知。
1.2 语法结构的量子纠缠
MIT语言实验室发现,transformer模型在处理嵌套从句时,自注意力机制会形成类似量子纠缠的状态叠加。当解析"虽 ...
无题
深度神经网络终极指南:从数学本质到工业级实现(附Keras版本代码)
为什么深度学习需要重新理解?(与浅层模型的本质差异)
模型类型
参数容量
特征学习方式
适合问题类型
浅层模型
102-104
手动特征工程
低维结构化数据
深度模型
106-109
自动特征提取
高维非结构化数据
一、用Keras单隐层网络预测客户流失率
1.1数据的准备与分析
1234import numpy as np #导入NumPy数学工具箱import pandas as pd #导入Pandas数据处理工具箱df_bank = pd.read_csv("/kaggle/input/deep-neural-networks-data/BankCustomer.csv") # 读取文件df_bank.head() # 显示文件前5行
显示分布情况
1234567891011import matplotlib.pyplot as plt #导入matplotlib画图工具箱import seaborn as sns #导入seaborn画图工具箱# 显示不同特 ...
无题
逻辑回归–多元分类问题
有多少类别,就要训练多少二元分类器。每次选择一个类别作为正例,标签为1,其他所有类别都视为负例,标签为0,以此类推至所有的类别。训练好多个二元分类器之后,做预测时,将所有的二元分类器都运行一遍,然后对每一个输入样本,选择最高可能性的输出概率,即为该样本多元分类的类别。
举例来说,如果对3个二元分类器分别做一次逻辑回归,机器的分类结果告诉我们,数据A是孔雀的可能性为0.5,是熊猫的可能性为0.1,是独角兽的可能性为0.4。
那就会判断数据A是孔雀。
一、多元分类的损失函数
多元分类的损失函数的选择与输出编码,与标签的格式有关。
多元分类的标签共有以下两种格式。
一种是one-hot格式的分类编码,比如,数字0~9分类中的数字8,格式为[0,0,0, 0,0,0,0,1,0]。
一种是直接转换为类别数字,如1、2、3、4。
因此损失函数也有以下两种情况。
如果通过==one-hot==分类编码输出标签,则应使用==分类交叉熵(categorical crossentropy)==作为损失函数。
如果输出的标签编码为类别==数字==,则应使用==稀疏 ...
无题
机器学习–逻辑回归
一、认知革命:从线性回归到逻辑回归
1.1 本质差异对比
维度
线性回归
逻辑回归
输出类型
连续值
概率值 (0-1)
目标函数
最小二乘法
极大似然估计
数学表达式
$y=w^Tx+b$
$p=\frac{1}{1+e{-(wTx+b)}}$
应用场景
房价预测
信用评分、疾病诊断
1.2 Sigmoid函数的数学推导
123456# Sigmoid函数特性验证def sigmoid(z): return 1 / (1 + np.exp(-z))print("输入10时概率:", sigmoid(10)) # 输出0.99995print("输入-10时概率:", sigmoid(-10)) # 输出0.000045
1.3 逻辑回归
逻辑回归需要提前设定一个阈值p,用来控制分类界限,
二、判断客户是否患病
其中提供了众多参数如:
age:年龄。
sex:性别。
cp:胸痛类型。
trestbps:休息时血压。
去判断是否患病,这就变成了一个分类问题
或者去判断一个人是否考试通 ...
无题
机器学习—实现多元线性回归模型
本节顺延机器学习--线性回归中的内容,进一步讨论多元函数的回归问题
$$
y{\prime}=h(x)+w\top\bullet x+b
$$
$\text{其中,}w^\mathrm{T}\cdot x\text{就是}_{W_1X_1}+w_2X_2+w_3X_3+\cdots+w_NX_N$
进一步按题目简化:
$$
y^{\prime}=h(x)=w_0x_0+w_1x_1+w_2x_2+w_3x_3
$$
其中$w_0x_0$为引入的偏置b
12345678import numpy as np #导入NumPy数学工具箱import pandas as pd #导入Pandas数据处理工具箱#读入数据并显示前面几行的内容,确保已经成功的读入数据#示例代码是在Kaggle中数据集中读入文件,如果在本机中需要指定具体本地路径# 如,当数据集和代码文件位于相同本地目录,路径#名应为'./advertising.csv',或直接放'advertising.csv'亦可df_ads = pd.read_csv( ...
无题
机器学习–线性回归
所谓回归分析(regression analysis),是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,也就是研究当自变量x变化时,因变量y以何种形式在变化。在机器学习领域,回归应用于被预测对象具有连续值特征的情况(如客流量、降雨量、销售量等)。
123456789graph TD A[线性回归] --> B[1.一个回归问题的定义] A --> C[2.数据的收集、分析和预处理] A --> D[3.如何建立机器学习模型] A --> E[4.如何通过梯度下降找到最优参数] A --> F[5.线性回归模型的实践] F --> G[5.1一元(单变量)线性回归模型] F --> H[5.2多元(多变量)线性回归模型]
在机器学习的线性回归分析中,如果只包括一个自变量(特征x)和一个因变量(标签y),且两者的关系可用一条直线近似表示,这种回归分析就称为==一元线性回归==分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为==多元线性 ...
无题
机器学习–张量
机器学习的数据结构–张量
张量是机器学习程序中的数字容器,本质上就是各种不同维度的数组,如下图所示。
张量的维度称为轴(axis),轴的个数称为阶(rank)
标量–0D张量
123456import numpy as np #导入NumPyX = np.array(5) # 创建0D张量,也就是标量print("X的值",X)print("X的阶",X.ndim) #ndim属性显示张量轴的个数print("X的数据类型",X.dtype) # dtype属性显示张量数据类型print("X的形状",X.shape) # shape属性显示张量形状
向量–1D张量
由一组数字组成的数组叫作向量(vector),也就是一阶张量
1234X = np.array([5,6,7,8,9]) #创建1D张量,也就是向量print("X的值",X)print("X的阶",X.ndim) #ndim属性显示张量轴的个数print("X的形状&quo ...
无题
机器学习–Kaggle的使用
打开Kaggle: Your Machine Learning and Data Science Community并点击Sign In登录账号
kaggle中自带了很多的数据集
在点击Datasets之后,单点Notebook,如果有适用的数据集可以单击Copy and Edit复制其Notebook,之后我们自己进行慢慢研习。
点击File,Upload input,Upload dataset后即可把我们现有的文档进行上传。
来举一个手写数字识别的栗子:
12345import numpy as np # 导入NumPy数学工具箱import pandas as pd # 导入Pandas数据处理工具箱from keras.datasets import mnist #从Keras中导入mnist数据集#读入训练集和测试集(X_train_image, y_train_lable), (X_test_image, y_test_lable) = mnist.load_data()
12print ("特征集张量形状:" ...
无题
colab使用说明
1.上传文件
点击+New按钮可以添加本地的文件和程序(在colab中要读取的数据需要实现上床,这点不如Kaggle有很多可以直接用的数据)
2.选用高性能计算单元
点击右上角可以显示高性能的GPU
当然,更高性能的计算单元也意味着我们购买的计算单元消耗的速度越快
3.举一个栗子
打开ipynb文件后即可运行代码(以下直接读取github中的开源数据)
12345import pandas as pd #导入Pandas,用于数据读取和处理# 读入房价数据,示例代码中的文件地址为internet链接,读者也可以下载该文件到本机进行读取# 如,当数据集和代码文件位于相同本地目录,路径名应为"./house.csv",或直接放"house.csv"亦可df_housing = pd.read_csv("https://raw.githubusercontent.com/huangjia2019/house/master/house.csv")df_housing.head #显示加州房价数据
把一个网 ...