【BP】c++实现
BP网络c++实现
单隐藏层流程
下面实现一个单隐藏层的简单BP算法,其中输入层、隐藏层、输出层节点个数可以自定义,而前向传播和后向传播是主要过程,下面是按上图进行的公式推导
1. 前向传播
1.1 输入层向隐藏层传播
q=∑ixiwij−βjhj(q)=σ(∑ixiwij−βj)q=\sum_i x_i w_{ij} - \beta_j\\
h_j(q)=\sigma( \sum_i x_i w_{ij} - \beta_j )
q=i∑xiwij−βjhj(q)=σ(i∑xiwij−βj)
其中hjh_jhj为第jjj个隐藏层节点的值,xix_ixi为第iii个输入层节点的值,wijw_{ij}wij为第iii个输入层节点到第jjj个隐藏层节点的权重,βj\beta_jβj为第jjj个隐藏层节点偏置值,σ(x)\sigma(x)σ(x)为Sigmoid激活函数,其公式如下
σ(x)=11+e−x\sigma(x) = \frac{1}{1+e^{-x}}
σ(x)=1+e−x1
代码
12345678910111213//计算h_j(q)int ...
Linear transformations
https://www.youtube.com/watch?v=XkY2DOUCWMU
线程变换
设线性变换T的矩阵A为
A=[3112]A=
\begin{bmatrix}
3 & 1 \\
1 & 2
\end{bmatrix}
A=[3112]
另一个向量v为
v=[−12]v=
\begin{bmatrix}
-1\\
2
\end{bmatrix}
v=[−12]
对于 res=Avres=Avres=Av 的计算,可以理解成下面的动态图
即,对A分量1A_{分量1}A分量1进行了−1-1−1的缩放,A分量2A_{分量2}A分量2进行了222的缩放,再将两个缩放的结果相加,得到最终向量resresres. 这样的计算是通过几何意义进行计算
res=[31]∗−1+[12]∗2=[−13]res=
\begin{bmatrix}
3 \\
1
\end{bmatrix}
*
-1
+
\begin{bmatrix}
1 \\
2
\end{bmatrix}
*
2
=
\begin{bmatrix}
-1 \\
3
\end{bmatr ...
stable-signature
Stable Signature运行流程
先安装原始的stable diffusion,目前stable diffusion有两个版本(v1,v2),建议用v2(v1实际跑越来的问题太多了);
除了原始的sd,目前还有stable diffusion webui版本,这个版本拥有了UI,而且一键安装不需要自己配置环境,上手即用,但缺点是,目前无法对webui中的txt2img.py文件进行修改,即:无法将stable signature嵌入进去。
stable signature是基于stable diffusion基础上的,所以,要先运行好stable diffusion
下面是stable diffusion【v2】安装流程
stable diffusion【v2】项目:https://github.com/Stability-AI/stablediffusion
注意:作者是Stability-AI
下载stable diffusion项目
打开项目的目录,里面有environment.yaml文件,可以打开environment.yaml文件,对name进行修改(默认 ...
实验室安全考试刷题
进入实验室之前需要刷实验室安全的课程并通过考试,这儿有两个脚本可以自动化完成
刷时长脚本
需要安装selenium库:pip install selenium
修改user_name为学号,password为登录办事大厅的密码
随后执行脚本
脚本缺点,部分题目需要手动切换网页刷新
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475from selenium import webdriverfrom selenium.webdriver.common.by import Byimport timeLOGIN_URL = "http://10.22.107.77"user_name = "account" # accountpassword = "password" # passworddr ...
But What's a convolution?
卷积
先提出了个投色子问题,投两次色子,两次色子的点数相加一共有多少种可能,每种可能对应的概率分为是多少?
下面是第一种可视化的方案,将两组色子按行、列进行组合,将一共得到36种结果,再将结果相同的点数进行累加
下面是第二种可视化的方案
将第二行的色子反转,对应位置与第一行的色子进行匹配,匹配结果:两行点数相加为7,并且一共有6种可能,P(7)=6÷36P(7)=6 \div 36P(7)=6÷36
而将第二行的色子左移,直到让第二行最后一个色子与第一行第一个色子匹配,匹配结果:两行点数相加为2,并且有1种可能
继续将第二行色子不断右移,则可以分别匹配到不同的相加后点数,以及对应的概率
然而,上面的概率是建立在每个色子都有相同的概率(1/6)基础上得到的,如果每个色子的概率不同呢?比如红色3的概率是0.24,而红色4的概率是0.1 ,如下图所示
那么,此时两组点数相加为3的概率就会发生变化,比如 P(3)=0.16×0.22+0.21×0.11P(3)=0.16 \times 0.22 + 0.21 \times 0.11P(3)=0.16×0.22+0.21×0.11
...
【ssh反向代理】外网访问内网主机
利用反向ssh从外网访问内网主机
前言
内网一台主机仅能在内网访问,没有公网ip,外网无法直接访问。下面是个反向ssh连接方案,从而可以连接到校园内网主机。
工作原理
内网主机B可以访问到外网服务器A,于是让B与A创建通信隧道连接,随后再通过外网主机A连接到内网主机B
所谓反向ssh最通俗的理解,这就像寄信一样,虽然我不知道你的地址,但是你知道我的地址,那么你就先给我写封信,告诉我你的地址,然后我不就可以回信给你了么?
前提:使用密钥登录
为了不输入密码,这边选择用密钥登录,下面是密钥登录的方法
在内网主机B创建密钥,使用命令ssh-keygen -t rsa,这个命令会在**~/.ssh/**目录下生成一个公钥,一个私钥。
将公钥的内容,复制到服务器A的**~/.ssh/authorized_keys**(这里的~是user的home路径)内
1ssh-copy-id -i ~/.ssh/mykey.pub user@host
随后,在内网主机B尝试无密码登录到服务器A(假设A的ip为12.12.12.12)
1ssh username@12.12.12.12
如果不需要输入 ...
如何更优雅地使用ChatGPT
大纲
获得ChatGPT账号
API访问模式
获得ChatGPT4.0账号
ChatGPT4.0科研相关插件
其它ChatGPT相关软件
全文用得上的链接
ChatGPT的官方网址是 https://chat.openai.com
官网注册/登录链接 https://chat.openai.com/auth/login
购买邮箱的网站:https://www.henduohao.com/
手机验证码接码平台 https://sms-activate.org/
两个用于购买ChatGPT账号的网络平台
https://www.gpt777.shop/?categoryId=0(推荐)
https://www.z2u.com/chatgpt/accounts-5-20670(国外网站)
ChatHub插件项目链接:https://github.com/chathub-dev/chathub/releases
查看账号额度 https://platform.openai.com/account/usage
生成API Key https://platform.openai.com/ac ...
【研究生课】信息安全技术笔记一
课程安排
前期非常快地讲下密码学
研究生的课程会很宽泛,包含不同领域的安全。
考核
考核安排
是个完成一个课题,要交个大报告
第三周上课前确定要做的课题(在群里发的在线文档),第八、九周做个期中汇报(文献汇报),第十五周开始交最终汇报(研究汇报)
提交一份研究报告,算法要有完整实现
可选课题
网络安全,多媒体内容安全,人工智能安全,区块链及隐私保护
网络安全-入侵检测
做个入侵检测系统(IDS,intrusion detection system),防火墙被攻破后,使用IDS进行防御或检测。
(硬件部署)可以部署在防火墙与服务器之间,通过监听网络信息,确保攻击数据在进入到服务器之前,将其拦截。像旁路由
(软件部署)将IDS部署在服务器上,通过日志来判断。像软路由。
抽象成个二分类问题(是否有攻击)
通过web日志,使用机器学习手段,训练出一个模型,对每一条(实时的)日志进行判断是正常行为或异常行为。将模型部署后,可以对web日志实时进行监控并做出相应处理。
通过TP矩阵评估,False Negitive 越小越好
抽象成个多分类问题(具体是什么类型攻击)
通过web日志,使用机器学习手 ...
【openwrt】克隆Mac突破校园网
问题:openwrt在DHCP下重设置MAC无效(克隆mac失败)
在csdn上搜索了几个方法
1.修改 lan,wan mac地址
编辑 /etc/config/network
修改wan口
1234567891011config interface 'wan' option _orig_ifname 'eth1' option _orig_bridge 'false' option ifname 'eth1' option proto 'dhcp' option hostname 'lthero' option macaddr '88:A4:C2:11:C5:63' config device 'wan_eth1 ...
【饥荒】服务器搭建
第一步 安装必备工具
1.安装一些必备的工具
1apt -y install glibc.i686 libstdc++.i686 libcurl4-gnutls-dev.i686 libcurl.i686 screen
lib32gcc可能无法安装,则运行下面的代码
123dpkg --add-architecture i386apt-get updateapt-get install lib32gcc-s1
2.安装steamcmd
12345cd /home && mkdir steamcmd && cd steamcmdwget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gztar -xvzf steamcmd_linux.tar.gz
这一步是在Linux下创建/home/steamcmd目录
并远程下载steamcmd的安装包并解压,
解压完目录下会有一个steamcmd.sh文件,
这时候执行这个文件就可以启动SteamCMD,执行代码如下:
12c ...