hero image

胡图图的糊涂事件

胡图图尝试搭建一个自己的博客记录自己的所有的愚蠢行为。

项目名称
项目详细描述
链接名称
链接详细描述
书籍名称
书籍详细描述
文章名称
文章详细描述
伙伴名称
伙伴详细介绍
自定义项目
自定义项目
自定义详细介绍
自定义项目
自定义项目
自定义详细介绍
页面配置

more 注释之前的内容被视为文章摘要。


Ms.Hope大约 2 分钟使用指南页面配置使用指南
SAN

文献阅读(3)SAN

标题:Partial Transfer Learning with Selective Adversarial Networks

清华大学龙明盛团队 2018 年发表在计算机视觉顶级会议 CVPR 上的文章提出了一个选择性迁移网络 (Partial Transfer Learning)。作者认为,在大数据时代,通常我们会有大量的源域数据。这些源域数据比目标域数据,在类别上通常都是丰富的。比如基于 ImageNet训练的图像分类器,必然是针对几千个类别进行的分类。我们实际用的时候,目标域往往只是其中的一部分类别。这样就会带来一个问题:那些只存在于源域中的类别在迁移时,会对迁移结果产生负迁移影响。

这种情况通常来说是非常普遍的。因此,就要求相应的迁移学习方法能够对目标域,选择相似的源域样本 (类别),同时也要避免负迁移。但是目标域通常是没有标签的,不知道和源域中哪个类别更相似。作者指出这个问题叫做 partial transfer learning。这个 partial,就是只迁移源域中那部分和目标域相关的样本。下图展示了部分迁移学习的思想。

image-20230418192557331

作者提出了一个叫做 Selective Adversarial Networks (SAN) [Cao et al., 2017] 的方法来处理 partial transfer 问题。在 partial 问题中,传统的对抗网络不再适用。所以就需要对进行一些修改,使得它能够适用于 partial 问题。因为不知道目标域的标签,也就没办法知道到底是源域中哪些类是目标域的。为了达到这个目的,作者对目标域按照类别分组,把原来的一整个判别器分成了个:,每一个子判别器都对它所在的第 k 个类进行判别。作者观察到了这样的事实:对于每个数据点来说,分类器的预测结果其实是对于整个类别空间的一个概率分布。因此,在进行对抗时,需要考虑每个样本属于每个类别的影响。这个影响就是由概率来刻画。所以作者提出了一个概率权重的判别器:


Huahuatii大约 3 分钟文献阅读ArticleTransfer Learning
DrugBAN

文献阅读

标题:{Interpretable bilinear attention network with domain adaptation improves drug–target prediction}

1 亮点

2 模型示意图

3 实验内容

4 方法

5 代码


Huahuatii小于 1 分钟文献阅读ArticleTransfer Learning
范数

1 向量范数

1.1 范数定义

  1. 范数0范数

  2. 范数和范数1范数

  3. 范数范数范数范数是使用最为广泛的范数

  4. 范数极大范数


Huahuatii大约 2 分钟深度学习范数
CODE-AE

文献阅读(1)CODE-AE

标题:A context-aware deconfounding autoencoder for robust prediction of personalized clinical drug response from cell-line compound screening**

1 亮点

  1. CODE-AE既可提取不同样本间的共享生物信号,也可以提取它们特有的私有生物信号,从而分离出数据模式之间的混杂因素;
  2. CODE-AE通过将药物反应信号与混杂因素分离,进而实现局部对齐(大多方法只能实现在全局上的对齐)。

Huahuatii大约 9 分钟文献阅读ArticleTransfer Learning
从0开始搭建Auto-Encoder

从0开始搭建Auto-Encoder

搭建Auto-Encoder模型的时候,选择了更加结构化的搭建模式:

  1. 搭建base_ae:这一步用来确定一个ae模型的基本结构会有哪些(其中有部分未必会用到)

1 搭建base_AE模型

  • 初始化
  • 编码函数
  • 解码函数
  • 采样函数
  • 生成函数
  • 前向传播(抽象方法)
  • 损失函数(抽象方法)
'base_ae.py'
from torch import nn
from abc import abstractmethod  # 定义抽象方法
from typing import TypeVar  # 定义数据类新的接口
from typing import List, Any
Tensor = TypeVar('torch.tensor')  # 定义泛型变量,表示一个 PyTorch 的 tensor


class BaseAE(nn.Module):
    def __init__(self) -> None:  # 初始化神经网络模型的各个组件
        super(BaseAE, self).__init__()

    def encode(self, input: Tensor) -> List[Tensor]:  # 定义一个编码过程
        raise NotImplementedError

    def decode(self, input: Tensor) -> List[Tensor]:  # 定义一个解码过程
        raise NotImplementedError

    def sample(self, batch_size: int, current_device: int, **kwargs) -> Tensor:  # 定义一个采样方法
        raise RuntimeWarning()

    def generate(self, x: Tensor, **kwargs) -> Tensor:  # 定义一个生成方法
        raise NotImplementedError
        
    def initialize_weights(self) -> None:  # 定义初始化权重方法
        raise NotImplementedError

    @abstractmethod  # 装饰器,声明下面的方法为抽象方法
    def forward(self, *inputs: Tensor) -> Tensor:  # 定义前向传播过程
        pass

    @abstractmethod
    def loss_function(self, *inputs: Any, **kwargs) -> Tensor:  # 定义损失函数
        pass

Huahuatii大约 9 分钟深度学习搭建模型Deep LearningModel PracticeMLP
Argparse模块

Argparse

1 示例

import argparse  #导入argparse模块

parser = argparse.ArgumentParser(description='argparse learning')  # 创建解析器
parser.add_argument('--integers', type=int, default=0, help='input an integer')  # 添加参数

args = parser.parse_args()  # 解析参数
print(args)

Huahuatii小于 1 分钟pythonArgparse
Numpy & Pandas技巧

Numpy

np.random.shuffle():改变原始数组的顺序,使得数组中的元素随机打乱,从而实现随机采样等操作。

np.random.shffle()
import numpy as np

# 创建一个一维数组
a = np.array([1, 2, 3, 4, 5])

# 将数组中的元素随机排列
np.random.shuffle(a)

# 打印排列后的数组
print(a)

Huahuatii大约 1 分钟数据处理pythonNumpy
Loss Function

Loss Function分类

1 均方误差(Mean Squared Error, MSE)

MSE(均方误差)损失是机器学习中使用的数学函数,用于衡量预测输出与真实输出之间的平均平方差。它通常用作回归问题的损失函数,目标是预测连续的目标变量。

定义:


Huahuatii大约 1 分钟深度学习损失函数Deep LearningLoss Function
2
3
 _   _               _                   _   _   _                                
| | | |             | |                 | | (_) (_)                                                 
| |_| |_   _  __ _  | |__  _   _  __ _  | |_ _   _                                
|  _  | | | |/ _` | | '_ \| | | |/ _` | | __| | | |                               
| | | | |_| | (_| | | | | | |_| | (_| | | |_| | | |                               
\_| |_/\__,_|\__,_| |_| |_|\__,_|\__,_|  \__|_| |_|                               
                                                                                  
                                                                                  
Have fun. Don't forget to bookmark this website :)                               

这是一个博客主页的案例。

要使用此布局,你应该在页面前端设置 layout: BlogHomehome: true

相关配置文档请见 博客主页open in new window