赞
踩
是结构化的语义知识库,用于迅速描述物理世界中的概念及其相互关系。它的基本单位是(实体-关系-实体) 就是点-线-点。
存储类型有结构化和非结构化的数据。结构化数据就是关系数据库,一张表格,关系很清楚,非结构化就是图片、音频、文本等。存储非结构化数据的方式:一个是通过RDF(资源描述框架)这样的规范存储格式来进行存储,还有一种方法,就是使用图数据库来进行存储,常用的有Neo4j等。
RDF应该有点像我写过的xml文件,用来放网站数据库的
知识图谱的技术框架如下。分成三个流程:信息抽取、知识融合、知识加工。
图嵌入就是在建立好一个知识图谱后,在知识图谱上发现新的关联(例如药物与药物之间是否发生新的事件,疾病 预测),在构建的知识图谱的基础上学习实体和关系的表示向量,预测药物治疗疾病的可能性。
模型的输入是三元组,物品-事件-物品。
模型会对实体和关系分别建立embedding,想要知道实体-关系向量,就是将实体向量×关系向量。
图嵌入技术主要分成两类:平移距离模型和语义匹配模型
(1)平移距离模型:基于距离的评分函数进行打分
比如已知(A,e1,B)(B,e2,C) 求(AC)之间的事件,就可以将两个向量相加,得到的向量再与输入计算相似度(如图TransE)
期望是前两个向量相加的结果趋近于ref,loss就是余弦相似度,不断迭代,优化embedding层。
(2)语义匹配模型
基于相似性的评分函数,通过匹配实体的潜在语义和向量空间中包含的关系来度量事实的可信度。
为啥二分类问题里面会用到交叉熵损失,而不用平方损失呢? 既然sigmoid输出的是概率值,难道用这个概率值与真实的label0或者1求平方损失,然后更新参数不可以吗?
首先明确概念:
均方误差损失:求平方的平均,一般用在回归任务。
交叉熵损失:描述实际输出与期望输出的概率的距离。
真正能衡量概率分布差异的叫相对熵,也就是KL散度。公式是真实分布与预测分布的比值取log。
交叉熵=信息熵+相对熵
Q。为什么分类不用MSE?
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
动态规划题首先:确定状态转移方程
爬到第i层的方法=爬到第i-1层的方法+爬到第i-2层的方法,即dp[i] = dp[i-1] + dp[i-2]
再确定初始状态 dp[1] = 1, dp[2] = 2.
太简单了不写代码。然后就是进阶版爬楼梯:
如果每次最多能爬m个台阶,有多少种方法可以到达楼顶?
6-拓展:最小花费爬楼梯(动态规划)
是一样的,都是简单题
- def minCostClimbingStairs(self, cost: List[int]) -> int:
- dp = [0,0]
- n = len(cost)
- for i in range(2,n+1):
- dp.append( min(dp[i-2]+cost[i-2],dp[i-1]+cost[i-1]))
- return dp[n]
KL散度的理论意义在于度量两个概率分布之间的差异程度,当KL散度越大的时候,说明两者的差异程度越大;而当KL散度小的时候,则说明两者的差异程度小。
KL散度具备非负性,KL散度不具备对称性。
KL散度公式:
最后得到的第一项称作P和Q的交叉熵(cross entropy),后面一项就是熵。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。