IntroAI_HW4 Freeway_Game Lab_Report
报告题目:Freeway Game
detect0530@gmail.com
2023年12月
1 引言
强化作为机器学习比较新的一个分支,广泛用于游戏ai中,本次实验,将以Freeway Game作为例子,运用强化学习的方法,训练一个能够自动玩游戏的ai。
2 实验内容
2.1 Task1
2.1.1.0 阐述强化学习的方法与过程
实验Sample code采用的是传统的Q-learning方法,Q-learning是一种基于Q值的强化学习方法,其核心思想是通过不断的迭代,更新Q-table,最终得到一个最优的Q-table,从而得到最优的策略。
具体来说,需要维护Q-tabke来辅助决策,Q-table记录了每个statement对应每个action的打分。这一步我们引入了三个东西:
状态 : 指游戏或模型中不同的状态定位,当然在特征工程的帮助下,也可以看作特征,
action : 指游戏/模型规定的运作方式。
打分 :又涉及heuristic函数,来对当前状态以及action评分。
Q-learning 强化学习算法流程:
第一步设计对状态的评估函数Q ...
演化算法HW3-复杂度&期望运行时间理论分析
Homework 3
detect0530@gmail.com
1. 证明No Free Lunch(NFL)定理
整体思路采用归纳法,首先,让我们证明:
∑fP(d1y∣f,m=1,a)=∑fμ(d1y,f(d1x))\sum_fP(d_1^y|f,m=1,a) = \sum_f\mu(d_1^y,f(d_1^x))
f∑P(d1y∣f,m=1,a)=f∑μ(d1y,f(d1x))
μ\muμ函数代表指示函数,成立时为1,反之为0。
注意这里的dxxd_x^xdxx是由aaa(算法)决定的。
因为f函数有个sum up,故上述式子的可以化简为∣Y∣∣X∣−1|Y|^{|X|-1}∣Y∣∣X∣−1,与aaa无关!
接下来,按照归纳法,我们假设∑fP(dmy∣f,m,a)\sum_fP(d_m^y|f,m,a)∑fP(dmy∣f,m,a)和a无关,然后去证明∑fP(dm+1y∣f,m+1,a)\sum_fP(d_{m+1}^y|f,m+1,a)∑fP(dm+1y∣f,m+1,a)也和a无关。
首先变化一下式子:
P(dm+1y∣f,m+1,a)=P(dm+1y( ...
Self-Attention机制
Self-Attention 机制
场景
输入不只是一个向量,有可能是一个向量组,且向量长度和向量组集合大小都不确定。
比如文本输入,一段文本可以看作是一个向量组,每个向量是一个词向量,向量组的大小是文本的长度。
但是这些文本如果按照简单的编码是不定长,且文本的order对其解读有很大影响。传统的输入方式以上特征都无法满足。
(to learn more: word embedding in weblink)
又比如声音信号:(也是一堆向量组成的向量组)
图也可以作为,比如人际关系图中,每个人的attributes可以看作是一个向量。同时向量之间是有联系的。
一些输入输出的例子:
每个向量都有输出
e.g. 词性判断、语音识别、购物推荐
只输出一个lable就好
e.g. sentiment analyisis、speaker recognition
机器自己决定输出(sequence to sequence)
e.g. 翻译、语音辨识
初步考虑
Windows
如果我们需要关联上下文,是不是开一个足够大的windows就好了呢?
如图我们开了一个全连接的wi ...
贝叶斯网络与MCMC近似
贝叶斯网络的结构
计算联合分布:
有利于减少参数量。(因为计算中每个节点只与父节点相关)
贝叶斯网络的建立
按照上述方式至少可以建DAG,但是想让图最自然同时边最少,需要按照逻辑拓扑序建图。
反过来也说明贝叶斯网络对图如何建立的不敏感。
贝叶斯网络的性质
流动性特点:
X,Y为节点,Z为观测变量的集合
有效迹
更具流动性的特点,可以引入d-分离的概念。
定理1:父节点已知时,该节点与其非后代节点条件独立。(根据有效迹可以判断)
定理2:Markov blanket:Each node is conditionally independent of all others given its Markov blanket: parents + children + children’s parents
计算条件独立时可化简
计算条件概率时,可以通过条件独立大大化简原式子。(每个部分的概率只依赖于不多的与之相关的节 点)。
特别需要注意下:
在给定G时,D与I是有流动性的,此时D与I是不独立的。
反之,若不给定G,D与I之间没有有效迹,是独立的。
虽 ...
CNN卷积神经网络-原理
1. 为什么对于图形,不能暴力的使用全连接层?
直接全连接,参数过多,训练慢且容易overfitting。
2. 图形识别的一些观察
不需要完整的图片,只用看一小部分。
Observation 1
只用在意一个小区域(receptive field)的信息,而不是整张图片。
receptive field可以有重叠甚至可以完全相同(侦测多种pattern)
receptive field的大小、形状、位置、channal都是可以调整的
Tyopical Setting
stride 偏移量
padding 填充(方法多样
Observation 2
同一个pattern在所有receptive field共享参数。
Benefit of Convolutional Layer
针对图像识别的特化神经网络。虽然弹性变小,但是不会overfitting。
Convolutional Layer
每一个filter都产生一层层特征,所有的filter叠加起来就是一个feature map。
可以发现每个Filter高度等于输入的channel,宽度等于recepti ...
Deep_Learning 简介
1. Difference between Deep network and Shollow network
deep network 显著地减少了参数的数量,一方面避免了参数过多而过拟合的风险,一方面也减少了计算量,提高了训练速度。
深度学习可以在参数量小的同时,loss值同样小。做到了鱼与熊掌的兼得。
两难困境
模型太大了,理想解恨好,但是训练出来效果不好
模型小了,理想和现实接近但是都不好
为什么需要Hidden Layer
正常的函数逼近
制造很多上图中的sigmoid函数,然后叠加在一起,就可以逼近任何函数了
于是通过神经网络的连接,通过设置很多神经元的参数:weight and bios,再通过sigmoid激活函数后组合起来,就可以逼近任何函数了
当然更多时候,我们用relu激活函数代替sigmoid函数,因为relu函数更简单,计算量更小,而且效果更好。
为什么需要多层神经网络
Why we want “Deep” network, while not “fat” network? Just because it sounds cool?
Y ...
快捷键合集
Windows
vscode:
Ctrl + Shift + P 打开命令面板
Ctrl + Shift + N 新建窗口
Alt + ← 返回上一处光标
Ctrl + u 撤销光标的上一次操作
Macos
OPTION COMMAND D 隐藏菜单栏
command shift 4 截图
control option <- 窗口靠左
command h 隐藏程序
command q 关闭程序
command w 关闭程序窗口
Command T/N 新建标签页or新建窗口(finder中)
Command + Option + back 彻底删除
iterm2
imgcat 展示文件
proxy 打开终端代理
unproxy 关闭终端代理(实际上执行的是导入的脚本)
Linux terminal
watch -n 1 nvidia-smi 实时刷新监控显卡使用情况
gpustat 简化的nvidia-smi(插件
Vim
演化算法HW2 Maximum Cut
报告题目:Maximum Cut
detect0530@gmail.com
1 引言
演化算法可以解决很多优化问题,其中最大割问题是一个NP难问题,本次作业使用了遗传算法来解决最大割问题。
盼来的演化算法实践!同时更加期待第四次HW!
2 任务一 基本演化算法
本阶段,我将介绍code的基本结构,以及如何运行。
2.1 演化算子
12345def Get_fitness(graph,x,n_edges,threshold=0): g1=np.where(x==0)[0] g2=np.where(x==1)[0] fitness = round(nx.cut_size(graph,g1,g2)/n_edges,5) return fitness
计算fitness的函数,这里使用了nx的cut_size函数,计算割集的大小,除以总边数,得到fitness。
123456def One_bit_mutation(x): x_new=copy.deepcopy(x) idx=random.randint(0,len(x_new)-1) x_n ...
IntroAI_HW3 "Aliens game" Lab Report
报告题目:Aliens 游戏
王崧睿 221502011 detect0530@gmail.com
2023年11月
1 引言
之前研究过一些机器学习算法,很高兴能在这次作业里学习并运用检测不同算法对该问题的适用性。
2 实验准备
Task1
2.1 任务概述:
通过学习并观察代码框架,发现我需要先完成一次游戏,再对我完成游戏中的行为的特征提取,采用surpervised分类算法,让机器学会我的操作思路和细节。
2.2 思路制定:
明确目标:要在不被炸弹炸死且不能让alien进入最后一层,同时尽可能快的结束游戏。
我发现出怪的时间间隔是固定的,如果我们能对准轴,那么我们就可以在出怪的时候炸死它们,所以第一步就是先左移然后尽可能在刷怪时就歼灭之。
而当出现漏怪的情况,我们先按兵不动,因为如果转火去追击,那么就必须放弃即将新刷出来的怪,得不偿失。但是如果停止刷怪,或者大部分怪已经刷出来了,那么就该改变策略去歼灭了。
言而总之,战术分为两个部分:
一开始的定点打击,旨在尽可能多的歼灭敌人。此时不会主动移动,只会不断发射子弹,同时闪避炸弹。
当敌人数量下降到一定地步后 ...
NTU_ML_HW1
Homework 1: COVID-19 Cases Prediction (Regression)
Objectives:
Solve a regression problem with deep neural networks (DNN).
Understand basic DNN training tips.
Familiarize yourself with PyTorch.
If you have any questions, please contact the TAs via TA hours, NTU COOL, or email to mlta-2022-spring@googlegroups.com
Download data
If the Google Drive links below do not work, you can download data from Kaggle, and upload data manually to the workspace.
12!gdown --id '1kLSW_-cW2Huj7bh84YTdimGBOJ ...