一个小起点

不知道各位有没有玩过一个古早的小游戏叫做《我的逗比人生》?对于小登形态的博主,这个游戏让我记忆犹新,现在想找资源也不是那么容易了,令人唏嘘。刚巧博主现在很闲,外加正在练习python,再加再加一点分享欲,于是博主开了新坑,决定试着还原一下,不仅仅是做游戏本身,希望可以制作一个开源的游戏基底,让大家都能加入进来编写事件,这类文字游戏想必是一个实现简单、创造力强的好选择。
上手尝试python制作控制台小游戏以来,才知道以前过的是什么苦日子呀……c++写那个b控制台真是写的我头都大了,而python真是一步到位呀。
历经了尝试各种库,试着加入鼠标又放弃鼠标,试着加入函数接口又暂时放弃函数接口,目前大概实现了框架,选择了json记录数据,提供了可扩展性和基本的游戏逻辑。本博文就当作一个更新日志吧,主打一个碎碎念。
仓库链接

V0.0.1 6/19更新

基本搭建了游戏所需的框架,有待验证运行效果。以事件、选项、分支、特质四大类作为核心,正在鼓捣如何导入…

V0.1.0 6/19更新

用基础特质和示例事件跑通了第一次游戏,确认了游戏逻辑和流程没有问题,现在正在研究JSON格式以期可以便捷的导入事件,同时先规定一个简单的包管理

V0.1.5 6/20更新

正式完成了对于json的导入,创建了示例文件方便大家查看事件编辑格式,现在已经是一个最小的平台了

V0.2.0 6/20更新

完成了创作者文档,打包了可以直接运行的exe文件,支持多个平台,正在准备发布并寻求创作者们


碎碎念

以下所有内容均为AI幻觉和深夜鬼脑,权当记录和乐子,还请看官口下留情,博主学识浅薄,正在拜读论文,多处不自量力和民科之处,还请海涵

昨日夜间突发奇想,我们现有的主流大模型具有一个令人棘手的性质,是什么呢,所谓的不可解释性,做图像识别的CNN,做大语言模型的transformer啥的,内部大批参数是个黑箱,可以得到不错的结果,但是往往难以解释,导致ai很多论断是不可解释的,难以信服的,在医疗行业和金融、法律等需要可信依据的方面ai目前处于一个困境,更有system1到system2发展的一个瓶颈。(以上来自百度)我们知道神经网络之所以叫这个名字,是因为某种程度上来说模拟的是我们神经元的工作原理,我们得到决断其实也是靠一个多层感知机模型(当然要复杂的多),那么鉴于模拟人脑决策,我认为,神经网络其不可解释性其实本质上是一种“直觉”,就如同我们看到一副图片,马上能辨认出“这是一串葡萄”,很多时候我们做决定反而是在仔细推测之前,产生这个直觉的过程也是一个黑箱,我们“不假思索”地认为这是一个“葡萄”图片,因为给了我们一个葡萄的“印象”。我们把这个“印象论”推广到传统的CNN识别,其实我们可以这样说,我们用训练好的模型是为了对识别对象产生一个“直觉”,也即‘“直觉模型”,而直觉本身是一种不可解释的感觉,不可解释是使用神经网络的必然结果,是“直觉模型”的固有属性。模型的不可解释不是这个模型的错误,而是我们将其置入了错误的层级。
当然这个论断胡言乱语成分很高,包括许多不成熟的想法,我还是继续展开讲讲吧。

“直觉模型”+“推理模型”

我们不妨再次回顾一下刚才所说的,人辨识一张葡萄图片的过程。首先,产生一个“直觉”,它看起来像葡萄,这是我们已有的经验的一个第一印象,然后这里并不是结束。接下来,我们会在进行一个逻辑推断,也就是注意更多的细节。“有葡萄叶、葡萄藤、紫色椭圆形、有‘白霜’”,我们会进行进一步的推理,最后确信这就是个葡萄。而CNN直接的识别,跳过了逻辑步骤。(或者说,其把逻辑推理步骤在隐藏层极高度地抽象了,导致逻辑步骤也一并成为了黑箱模型),所以说,产生直觉后并不应该是结束(尽管实际上在现实生活中,直觉已经足够好了,这也正是CNN识别的有效性,它长得很像葡萄,那它大概率就是葡萄),接下来还要有逻辑推理的步骤。在神经网络产生结果,再用决策树、符号学习等白箱模型对其进行逻辑推理,这样才能得到接近人脑思考的“学习”过程。

“宏观直觉”和“原子直觉”

有细心的朋友们会注意到,不对啊,人的直觉并不是不可解释的,我们虽然能一眼认出这个是葡萄,但进一步我们是可以解释的,因为葡萄藤、藤蔓、紫色果实所产生的整体印象……没错,这里提到了很关键的一点,我刚才直接认定人的直觉和神经网络一样是个完全不可解释的黑箱,实际上并不是,也远远没有这么简单。所以这里,我再引入两个概念,原子直觉宏观直觉

  • 宏观直觉 是我们产生的很快,但实际上可以解释的直觉。例如刚才我们对葡萄直觉的拆分。不过,我仔细查看这个“解释”的本质,我们不是在诠释一个概念,而是再用另一个低级一点的直觉去解释高级的直觉。“葡萄”=“绿叶”+“紫色”+“藤蔓”,这当然是一种解释,但我们还可以继续追问,怎么判断这里有“绿叶”?为什么认为这是“藤蔓”?凭什么认定这是“紫色”?任何一个“宏观直觉”,都可以形如这样不断地解释下去,最后达到最小的“直觉”,这也就是我说的“原子直觉”
  • 原子直觉 是什么呢?例如,在欧式几何上任何的证明和定理,最后都会源自那几条公理,这几条公理没办法再追问“为什么”,因为它规定如此,这就是我们说的“原子直觉”。我们日常生活中无论是识别、判断之类的任务,本质上都存在原子直觉这一最底层的感知,所有的加法建立在1+1=2,可人们不会再去追问这个感知的原因(至少对普通人来说如此)。因此我们可以发现,原子直觉是存在的,确确实实存在一个无法解释的底层感知,而我认为我们应该做的,就是用不可解释模型去模拟这些原子直觉的产生过程,再加以组合,进而得到我们想要的“可解释性论断”,让整个模型变得透明。

“相对原子直觉”

更细心的朋友们会知道,哪有那么复杂,什么原子直觉,一般人思考不会追问到最底层去吧?没错,正是如此,如果我们要让模型从最底层开始学习显然是不可能也不现实的。下面我们用一个例子来解释一下一个新概念:还是刚才的葡萄解释问题。我们对“怎么判断绿色叶子”这一点,普通人一般来说就到此为止了,“因为这个形状这个颜色就是葡萄的叶子”,但植物学家或者之类的专家还能提出,因为它是单子叶双子叶、有网状纹巴拉巴拉之类的,还能继续解释下去。因此,“这是葡萄叶”这个感知(或者用我的话来说叫“直觉”)显然不是原子的,但是普通人会因为没法解释就认定这个感知不可靠,不能使用吗?显然不是!由此我们可以得到一个新的论断——

  • 一个直觉并不需要完全“原子”也可以作为推导起点
  • 对不同人来说有不一样的推导起点,可解释性的层级因人而异
    综上,我提出一个名为 “相对原子直觉” 的概念。并再用一个例子来解释这个概念

    我们用若干个已经训练好的不可解释模型,用于判断画面中的葡萄、苹果、香蕉…,并有一个逻辑推导的模型来组合这些感知结果。用整体识别一张图片,识别结果为“果园”。并给出解释:有葡萄、有苹果、有香蕉…,认定这是个果园。这个模型是一个可解释模型吗?是的!因为我们并不是那么纠结于为什么识别出葡萄!这里的实现变得相对无关紧要了!这时候,产生的“这是葡萄”直觉,就成为了“相对原子直觉”。

相对原子直觉,正是用于描述这样一个在当前语境和要求下无需进一步解释的直觉,对于这个任务目标来说,这个感知的产生过程变得不再关心,足够“原子”,而我们只在乎正确率。神经网络等黑箱模型,正是用于产生相对原子直觉的模型。我们不应该苛责CNN不能解释,而是因为我们错误的在某个层级使用了黑箱。就像刚才所说,同样是识别葡萄,在果园识别模型中,是一个可接受的原子直觉,在葡萄识别模型中,就是不可接受的了,因为它不能够解释。因此,我斗胆提出两个论断:

  • 黑箱是向下的,而向上总是透明的。
  • 黑箱的原罪不在于其不可解释性,而在于其所在层级不可接受

解释性边界

正如刚才所说,我们并不需要无穷无尽地向下追问为什么,而是存在一个边界,规定怎样的直觉是“相对原子直觉”,大家上学时都有这种感觉:同样一道数学题,给学霸们讲题和相对没那么霸的同学讲题要解释的边界是不一样的,“这两个三角形全等”对与大学霸来说够了,而对于小学霸还需要告诉他“SAS”之类的解释。这个“解释到什么地步就无需再解释了呢?”就是我说的“解释性边界”。大家容易发现,解释性边界是因人而异、因任务而异的,而我们想设计的解释性ai也应该是特化的,根据不同的用户、目标、任务划分不一样的解释性边界。追求“完全可解释的ai”不太现实,倒不如主动划定“解释边界”,然后用向下拆解的方法来逐步逼近!

当然这时候大家会觉得,博主你说的什么玩意,这不是显而易见的常识么?再说就算你说的是对的,有啥子用呢?哎!那么我再最后延伸思考一下————

“拆解黑箱”和“主动学习”

我们不妨回忆一下自己的学习进程,或者说是人类的研究的一个方向,学习动力从何而来?其实我们很少是由自下而上的动力,很多时候是“自上而下”的。在牛顿被苹果砸之前,东西会往地上掉是个“原子直觉”,不为什么,就是会往地上掉,直到牛顿去思考这件事情,我们才发现,东西往下掉不是“原子”的,其下是万有引力定律这个更原子的概念。我们用葡萄叶葡萄藤葡萄果去识别葡萄,或许有天会因为果实是紫色的这一简单直觉,犯了错误,把桑葚和葡萄搞混了,我们更进一步思考,葡萄果到底怎么分辨呢?于是我们不只是作为一个黑箱,我们去试图拆解这个黑箱————进一步加深了认知。我斗胆断言,主动学习的基本动力之一就是拆解黑箱,现有的现象和应用,仅仅认为“就是如此”已经不够用了,于是我们试图去理解自己为什么产生这种黑箱直觉————这就是主动学习的基本模式之一。

碎碎念

本人才疏学浅,以上均为个人臆想,缺乏实践检验和学习过程,如有可笑之处,还望海涵,自知天赋平平、仍自信过头地写出这篇文章,希望除了占据服务器空间之外,还能派上些许用场。


配置个人邮箱

豪度上升了!

使用邮箱是大家日常生活中的常见事情,虽然我们现在都用微信qq,不过有个邮箱还是便于作业提交、学术探讨、提升逼格等等有用的效果,但是选择什么邮箱呢?这是个老大难问题,大伙应该都有自己的qq、网易账号,但难免遭遇牢资历鄙视链(会吗?);使用gmail,胜在看起来国际影响力倍增,但是魔法环境以及难免“崇洋媚外”(而谷歌天天删我的号),还有许多我都没听过名字的邮箱。总之,如果想让你交作业时高人一等,写邮箱时风格满满,那么你不妨follow一下我的做法:利用现有的个人域名建设我们的个人邮箱!

  1. 选择一家企业邮箱,例如藤子
  2. 注册一家企业,反正是免费的,我的企业名叫“我自己”,应该是那种一看就很有市场的企业名字,然后成功成为企业管理员
  3. 在企业邮件界面选择你的域名,点进去的时候它会想方设法骗你买个域名,你直接不用管,把自己的域名啪啪输进去,他就会气急败坏地发现,哇袄有人已经注册了这个域名!于是他就会退而求其次,勒令你用某种方式连接到他的服务器,然后你就按照他的说法,设置dns解析,包括cname的重定向和身份认证和俩mx的转发,完成后等一会儿就会自动完成了
  4. 在企业内用管理员给自己办法一个自己想怎么选都可以的邮箱,比方说姓名缩写呀,me啊,hello啊,然后这一步很关键!你作为管理员给自己的邮箱是管理员邮箱,没有密码,所以也不能当作普通邮箱登录,当然方法也很简单,在企业微信,点击找回密码,设个密码,欧耶,现在这个号既可以作为管理账号进去管理,也可以正常进入邮箱界面了
  5. 可选项,给你的新邮箱绑定个转发到你的个人邮箱,所以其实上述这些步骤都是自欺欺人,只是等于给你的邮箱起了个超好听的别名罢了,区别就是这一套下来你不用为域名外付任何钱,穷学生就是要多薅羊毛啊
    当当当当,现在你拥有了一个me@xxxx.xx的,以你的域名命名的邮箱,不管是在简历还是个人主页甚至是给老师交作业收作业都显得高人一等了!
    哈,经营个人品牌是很重要的!正所谓客制化嘛,显得你比较专业,呐,这个就叫嘉豪专业!

    如果你成功创建了像模像样的企业邮箱,可以给我的号发邮件me@flamepd.top,每收到一封邮件,我就感觉这研究的俩小时多挣一大笔呢


大败而归

六月是你的谎言

有人说,第一次改完教材出的题目一定会非常简单,有手就行,也有人认为不尽如此,对此,你怎么看?请自拟题目

今天的故事告诉我们,眼高手低是不行的,不做真题你永远不知道自己哪些会,哪些会说不会写,哪些干脆不会。
如果学长告诉你某个题目不会考,那你最好把这类题目往死里刷,如果老师说那个范围要靠,就一定要花时间去使劲背。
平日烧香和考前佛脚至少要选一个,最好两者兼具,千万不要自以为三天速成就足够了,很多时候就是三十天也会觉得棋差一招,另外,千万不要因为前面考的很简单,就误以为后面的考试也会很简单。
另外,你们做资料的给我做好了啊我chovy,你这历年真题真在哪?题目抄错答案乱写,是不是我们学校的都是个未知数,你收钱不办事的,我真得惩罚你了,奉劝学弟学妹们一句,选择学解=选择失败,选择成惠至少不会败局已定,更好的做法是找到靠谱的学长,搞到靠谱的真题,但其实年年改革年年换源,正所谓计划赶不上变化,有时真是命中注定吧
OS这么智能这么聪明的产物,居然妄想三个晚上搞明白(中间还在找奥拉星的号,不得不说这游戏都成口蓝航线了,小时候养了半年的光明星诺被登陆就送的新手礼包爆杀),实在是太高估自己的能力了,恳请日后面试工作的时候不会有人冲到我脸上问我磁盘寻道方式是SSFT(是这个吗)还是SCAN,更不会问我三十年前的操作系统是怎么分页的。


肘击课设完毕

AI太好用了你们知道吗

课设仓库

这个课程设计尽管从头到尾都给我一种草台班子的感觉,包括但不限于题目乱填,限量问卷统计,到时间不发表,自动保存空白导致没报上名,以及装死的老师,没有魔法禁止访问的网站,写了半天Flask才告诉我们要用Java等等等等……不过最后尘埃落定,把整篇实验报告搞完还真有种成就感,毕竟是第一次全栈开发的项目,从前端到中端到后端到数据库一手包办(并不是,其实是AI),所以也算是一个值得记录的时刻,好歹readme是我自己写的,写完感觉我一跃编程技术大牛了,在互联网上无偿教学别人怎么使用我的软件(谁会用啊到底),LICENSE更是体现了我开源无私的超级互联网精神,现在的我可是有法律背书的!(大概吧)
老师人挺好,没难为我,辛苦写了一大坨东西照单全收了,打包的jar、ppt、pdf、.sql全收进去了,但愿不要哪天发现个人编码含量为0拉出来清算我
嘛,也算是掌握了不少对于开发项目的经验,虽然我做的事情不过是点开IDEA然后点击新建SpringBoot项目罢了,但是初步也算理解了很多项目运行的一个逻辑,HTML和thymeleaf写前端,用entities给表项做对象,再用repository访问管理数据库,同时用controller控制行为并执行函数,不得不说,Java这个高对象性我真挺喜欢的,不仅直观而且还规范呢。
眼下还要准备剩余时间不到24小时但掌握的东西基本为零的OS考试,只求出卷老师留条生路,今天就暴力大刷题作速通吧,对不起了Debian对不起了比尔盖茨,你们的成果就由我浅浅舔一下然后被一巴掌拍飞吧
希望不要重蹈机器学习的覆辙我吐了这个出卷,你ppt上面说的重点是啥,PCA、朴素贝叶斯,你考个手算SVM、CART剪枝,学长你不是说不考吗 学长你不是说不考吗 学长你不是说不考吗 学长你不是说不考吗
今天中午先奖励自己享用一顿猪扒饭,另外我要去补觉了,略略略


个人域名上线啦

个人域名上线啦

如题,我在阿里云斥巨资(20CNY)奖励了自己一个个人域名,如果你是通过flamepd.top这个网址进来的,那我就太开心了,其实也不知道有啥用,不过有个人网站果然还是显得高级十倍对吧?

言归正传,其实还是挺简单的,搜索域名,下单,填完身份信息再等一会儿,然后配置DNS就完事了,这种感觉还挺神奇的,不过非常考验耐心。不得不感慨ai的强大,对于网络这些东西我是一窍不通,但是跟着步骤走就能得到一个超级域名啦,这也太酷炫了吧?

大伙儿要是像我一样用hexo在GitHub page上部署博客的话,那么这里有参考的步骤

  1. 购买一个域名,我选的top,看起来不掉价而且价格非常亲民,适合像我这样的穷学生,富哥可以考虑me或者com这种,不要选xyz!
  2. 实名以及等待
  3. 配置dns,具体步骤可以参考一下下方,解析线路和ttl都用默认值就行
    记录类型 主机记录 记录值
    A @ 185.199.108.153
    A @ 185.199.109.153
    A @ 185.199.110.153
    A @ 185.199.111.153
    CNAME @ 你的用户名.github.io
  4. 在GitHub设置里的page项里的Custom domain,把你的新域名填上去,然后save,等待连接成功

不想被浏览器叔叔当作恶意网站一脚踢死可以让github给你颁发个ssl小红花,于是你的域名就可以用https来访问了,不过这一步依旧需要耐心,我还在等呢
那么现在你可以在你的主页把你新的域名放上去唬人了,但我觉得这么嘉豪的事情我一个人干就够了


HelloWorld

Hello World!

这是我的第一篇博客,出于嘉豪和好玩的目的制作,其实我也不知道该塞什么

1
2
3
4
5
#include<cstdio>
int main(){
printf("Hello World");
return 0;
}

与其说是记录,不如说是就开个小头吧

顺便测试一下md语法

这是三级标题

这是四级标题

这应该是五级标题

这是分割线
这是斜体 这是加粗 这是又斜又粗 这是划掉

这是一张图片