ML的HelloWorld:MNIST识别
kaggle地址
数据是很普通的MNIST(28*28) 即一个 28*28 的256灰度图,要求你识别出数字
操作系统:世界上最垃圾的操作系统(我还没说是哪个呢)
简单CNN Acc:0.99
CODE
参考&部分代码
数据准备
首先我们来实现Baseline(Acc=0.99)
读入数据,我们使用 pandas 读入数据
12train_origin = pd.read_csv(PATH+TRAIN)test_origin = pd.read_csv(PATH+TEST)
由于我们的训练集是只有一个label,但是我们神经网络需要输出一个10维向量(代表 0 to 9),因此我们改写一下数据集,把 label 转化成 onehot 编码的
其实并不需要输出一个十维的,也可以就输出一个数字,但是一般不会这么写
1one_hot_embedding = pd.get_dummies(train_origin.label,prefix='y')
然后我们把这个编码出来的合并到原来训练集中,并且删除原来的label标签
12345# axis = 1 是横 ...
AI中的输入数据处理入门
Panda
12import numpy as npimport pandas as pd
读入一个csv表格
train_data = pd.read_csv("path")
DataFrame
DataFrame 是一个表格型数据结构,构造它的方式如下
table = pandas.DataFrame( data, index, columns, dtype, copy)
其中的参数分别是
数据,索引值,列标签,数据类型和拷贝数据
具体可以查阅
loc和iloc
看这个
GAN
一个真实有用的技术,会在不同领域不断被人重新发现,给予新的名词,然后大家会把功劳归给那一个教会了大家这个算法的人,而不失最早发明它的人。
变形金刚
大部分图片来自
Photation is All You Need
在说变形金刚之前,我们考虑几个问题
LSTM,GRU的缺点有哪些,它有什么可取之处
很显然, LSTM , GRU 以及普通的 RNN
模型严重依赖上一个时间点的结果,这限制了模型的并行性。此外,对于超长文本,即使是
GRU LSTM 表现也不够好。
为什么要利用 CNN 替代 RNN ?
CNN的缺点有哪些 ?
Transformer
Transformer 是一个 enc-dec 的结构
enc 和 dec 具体如下
输入数据编码
Word2Vec
除了第一层的词向量是 Word2Vec 其他的都是上一个 enc 的输出
Self-Attention
我们想用 Self Attention
找到句子中每个词和哪个有关联,例如上面这句话,我们要做的就是找到it
指代的是 \(animal\)
在 selfattention 中 ,每个单词有三个不同的向量 Q K V
,它们是嵌入向量乘上三个不同的权重矩阵得到的。
计算流程如下
...
ResNet
考虑加深网络的深度,肯定希望是出现右图的情况,即更深的网络搜索的范围一定比原来的更广阔并且对全局
minima
更近,但是网络可能会出现左边的情况,也就是更深层的网络距离最优解更远
因此可以提出一种残差网络的做法:定义残差块为
\(h^l=W*h^{l-1}+h^{l-1}\)
这样更深层的网络就包含了前面的网络
以下是流程
从 224*224*3->112*112*64 通过一个 7*7 的
64 个 fliter 的卷积核,然后通过 mean-pooling
之后的网络升级维度可以看这个网站
不过没有 ResNet34
biopython学习记
由于这种东西开发者手册写的很明白,所以我就说我做了什么好了
start:2023-03-15
相关代码
Day 1
学习了一些基本的概念,比如\(K-mers\)
编码。
基因是怎么被发现的
换句话说,如果我们要确定一段DNA中的基因序列,该怎么办。
(from wiki) 在基因的间接识别法(Extrinsic
Approach)中,人们利用已知的mRNA或蛋白质序列为线索在DNA序列中搜寻所对应的片段。由给定的mRNA序列确定唯一的作为转录源的DNA序列;而由给定的蛋白质序列,也可以由密码子反转确定一族可能的DNA序列。因此,在线索的提示下搜寻工作相对较为容易,搜寻算法的关键在于提高效率,并能够容忍由于测序不完整或者不精确所带来的误差。BLAST是目前以此为目的最广泛使用的软件之一。
鉴于间接识别法的种种缺陷,仅仅由DNA序列信息预测蛋白质编码基因的从头计算法(Ab
Initio
Approach)就显得十分重要了。一般意义上基因具有两种类型的特征,一类特征是“信号”,由一些特殊的序列构成,通常预示着其周围存在着一个基因;另一类特征是“内容”,即蛋白质编 ...
2023第五周XCPC训练-从萌新到Mcggvc
CF1804C
题目大意:你有个 nnn 面体骰子(面上的数字是 000 到n−1n-1n−1 ),初始1的数字是 xxx ,定义一种操作 f(x)f(x)f(x) 是让骰子走 n∗(n+1)2\frac{n*(n+1)}{2}2n∗(n+1) 步(例如五面的初始在 333,走 f(2)f(2)f(2) 是走 3→0→13 \to 0 \to 13→0→1)
手推一下发现最多执行到 f(2n)f(2n)f(2n) 因为考虑 $0\to 2n $ 这个过程,n∣f(2n)n|f(2n)n∣f(2n) ,因此 2n2n2n 步是循环的
1234567891011121314151617181920212223242526272829#include<bits/stdc++.h>using namespace std;int n,x,T,p;int main(){ ios::sync_with_stdio(false); cin>>T; while(T--) { int flg=0; cin>>n>>x>> ...
ML学到的一些杂项
余弦退火函数
123from torch.optim.lr_scheduler import CosineAnnealingLR,CosineAnnealingWarmRestarts,StepLRscheduler = CosineAnnealingWarmRestarts(optimizer,T_0=2,T_mult=2)
上古先贤的智慧
如果 T_mult=1 就在 T_0,2T_0,...,NT_0 取得
lr 最大值
否则,在 T_0+n*T_mult , n in [0,N] 取得 lr
最大值
BN Batch Normalization
名词:convariate shift 协变量便宜,由于网络是 deep
的,每一层的输出变化会导致下一层输入数据的偏移,因此后面的网络需要不断适应这个变化,导致训练效率降低。
Internal Covariate Shift=ICS
解决方式:
白化(Whitening)
白化(Whitening)是机器学习里面常用的一种规范化数据分布的方法,主要是PCA白化与ZCA白化。白化是对输入数据分布进行变换 ...
第四周-复杂网络与数据挖掘作业
ER 网络
由 wiki 上面的说法,存在两种 ER 网络,分别为 G(n,p)G(n,p)G(n,p) 与 G(n,M)G(n,M)G(n,M)
G(n,p)G(n,p)G(n,p)
每个点对按照 ppp 的概率连接
12345678910111213141516171819202122void ernp(){ cin>>n>>p; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { double k=1.0*rand()/RAND_MAX; if(k<=p) { a[i][j]=1; a[j][i]=1; m++; } } cout<<n<<" "<<m<<'\n'; for(int i=1;i<=n;i++) cout<<i<<'\n'; for(int i=1;i<=n;i++) for ...
new-todo-list
2023-2-23
ICA,Gibbs抽样
选修-复杂网络与数据挖掘
2023-3-15
首先是短期内学完本学期的数分和高代,然后是多写几个pytorch模型