当前位置:网站首页>leetcode——83,24;机器学习——神经网络
leetcode——83,24;机器学习——神经网络
2022-07-27 12:50:00 【Anan.3】
83. 删除排序链表中的重复元素

思路:
根据题目可得到本题为有序链表,用指针p指向头结点,从他的直接后继结点开始找与其值相同的结点,找到后将下下一个的值赋给下一个;以此类推,p指向最后结点时算法结束。
代码:
struct ListNode* deleteDuplicates(struct ListNode* head){
if(head==NULL){
return head;
}
struct ListNode *p=head;
while(p->next!=NULL){
if(p->val==p->next->val){
p->next=p->next->next;
}else{
p=p->next;
}
}
return head;
}
24. 两两交换链表中的节点

思路:
定义三个指针,p,q,t;p指向相邻结点的第一个结点,q指向相邻结点的第二个结点,t指向p,来连接上一组相邻结点与下一个相邻结点。
然后用p,q进行交换,再将t指向下一组结点的第一个
struct ListNode* swapPairs(struct ListNode* head){
if(head==NULL || head->next==NULL){
return head;
}
struct ListNode *p=head,*t=NULL;
struct ListNode *q=p->next,*rp=q;
while(p->next!=NULL){
p->next=q->next;
q->next=p;
if(t!=NULL){
t->next=q;
}
t=p;
p=p->next;
if(p==NULL){
break;
}
q=p->next;
}
return q;
}
激活函数的作用
激活函数是神经网络的一个重要组成部分。如果不用激活函数(即相当于激活函数为f(x)=x),在这种情况下,网络的每一层的输入都是上一层的线性输出,因此,无论该神经网络有多少层,最终的输出都是输入的线性组合,与没有隐藏层的效果相当,这种情况就是最原始的感知机。
将线性问题转化为非线性。
机器学习基本流程
0 提出问题
大多数机器学习流程首先要提出一个问题,而这个问题无法通过简单的条件程序或基于规则的引擎(专家系统)来回答。这些问题的答案通常与数据集的预测结果有关。
1 收集和准备数据
为了能够解决这个问题,我们需要与问题相关的数据。数据的质量与数量将决定预测结果的准确性。数据可视化是此环节的一个重要方面。此阶段还将数据拆分为训练集和测试集和验证集以构建模型,以6.1.3的比例进行分配。
2 选择训练方法
根据问题和数据的性质,我们需要选择合适的训练模型以最好地适应数据并获得准确的预测结果。
3 训练模型
导入训练数据,我们将使用各种算法来训练模型以识别数据中的模式。该模型可以利用内部可调整的权重,将数据的某些部分优先与其他部分,以构建更好的模型。
4 评估模型
使用测试集(未参与模型训练的数据)来查看模型的性能,
5 预测 将新的输入值导入模型来测试模型的准确性
三层前馈神经网络有输入层、输出层、隐层来进行训练
验证模型可以根据P-R曲线、ROC、AUC等
验证集和训练集的区别
训练集:用于模型拟合的数据样本,即用于训练的样本集合,主要用来训练神经网络中的参数。
验证集:模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。
测试集:用来评估模最终模型的泛化能力。但不能作为调参、选择特征等算法相关的选择的依据。
P1:训练集的作用
拟合模型,调整网络权重。
P2:验证集的作用
作用1:快速调参,也就是通过验证集我们可以选择超参数(网络层数、网络节点数、迭代次数epoch、学习率learning rate、优化器)等。
作用2:选择超参数,为了让我们的模型在测试集表现得更好,调参是不可避免地一部分,如果把测试集当验证集,调参去拟合测试集合,是不可行地,这相当于作弊。
作用3:监控模型是否正常
验证集的重要性:
如果没有设置验证集,我们通常得等到测试集才可以知道我们模型真正得实力,然后再来调整参数,这样子时间代价较高,通过验证集我们可以训练几个epoch后查看模型的训练效果及我们的网络是否出现异常,然后决定怎么调整我们的超参数。
边栏推荐
- Open source project - taier1.2 release, new workflow, tenant binding simplification and other functions
- 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
- How to pass parameters in JNI program
- 【VSCode】SyntaxError: Cannot use import statement outside a module
- 字节跳动的 Flink OLAP 作业调度和查询执行优化实践
- Aike AI frontier promotion (7.27)
- Realize the disk partition and file system mount of the newly added hard disk
- From the perspective of it, the CIO of B2B industry talks about how to change from "cost center" to "growth center"?
- 能说一说 Kotlin 中 lateinit 和 lazy 的区别吗?
- Two call processors of feign
猜你喜欢

初学者入门:使用WordPress搭建一个专属自己的博客
![[cute new solution] Fibonacci sequence](/img/2d/64cdc8b7625ee7a81275ad25dc2b7a.png)
[cute new solution] Fibonacci sequence

What should I do if I can't see any tiles on SAP Fiori launchpad?

Preliminary discussion on NetGen and Gmsh mesh generation of any multiple sub models of CAD based on osg+occ

v-text

Have you understood these 30 questions of enabling financial risk control plus points

JNI程序如何进行参数传递

Seata's landing practice in ant International Banking

v-on基础指令

Build mtk6765 compilation environment
随机推荐
Dichotomy queries values in an array
clearfix的作用
7-16 daily sword finger offer II 041. Average value of sliding window
Gan: generate adversarial networks
Height collapse and BFC
Insert sort, positive order, reverse order
QT excellent open source project 13: qscintilla
视频游戏沉迷行为研究综述
[cute new solution] Fibonacci sequence
能说一说 Kotlin 中 lateinit 和 lazy 的区别吗?
Delay queue performance test
52:第五章:开发admin管理服务:5:开发【分页查询admin账号列表,接口】;(Swagger的@ApiParam(),对方法参数进行注释;PageHelper分页插件;拦截器拦截检查登录状态)
51:第五章:开发admin管理服务:4:开发【新增admin账号,接口】;(只开发了【用户名+密码的,方式】;【@T…】注解控制事务;设置cookie时,是否需要使用URLEncoder去编码;)
如何调试JNI程序
Feign的整体流程
Go语言系列:如何搭建Go语言开发环境?
最新版泛域名证书申请
Application for the latest version of Pan domain name certificate
Plus SBOM: assembly line BOM pbom
Two call processors of feign