hello 👋,我是 oldwinter ❄️,一个云计算工程师,写过几万行代码,带过十几人团队。
这里是一座「全开放式,每日更新」的,由原子化的编织而成。目前主要在浇灌这几个领域 ⭕:
既然你诚心诚意地,闯入了我的花园,那我就大发慈悲地,给你一张地图:。
开个玩笑,客官莫怪 😂。虽然有导览,但这绝不是传统的博客,这是我,所以可能有很多看起来令人费解的半成品内容,也会颠覆你传统的长文阅读习惯。当您漫步花园时,这里有 2 个不成熟的小建议 💁:
- 尽量通过鼠标悬浮预览进行 [[ 上下文 ]]不中断的阅读。
- 尽量通过底部 [[ 反向链接 ]]找回来时的路。
这座数字花园使用 [[ Obsidian ]] 写作和发布,且毫无保留地开源,这里是,这里是项目地址:GitHub - yuxiang/notepage。
这座花园里,我挖了很多坑 🕳,如果你想敦促我加速填坑,或有一些建议和问题,欢迎来。或直接在下方自带的评论系统留言。如果方便的话,给个 star⭐️ 呗。
最后,如果您发现了令人不适的内容,或我的个人隐私,请告知我,万分感谢 🦀🦀: yuxiang.23@intl.zju.edu.cn。
🆕 最近创建:
- — 2024-05-27-Access Control & Constructors,Destructors
- — 2024-05-27-Arrays and Struct
- — 2024-05-27-Compile and Running
⏰ 最近更新:
- 2024-06-22 — 2024-06-12-Logistic Regression
- 2024-06-22 — 2024-06-14-Intro to Neural Networks
- 2024-06-22 — 2024-06-14-Practical Aspects of Deep Learning
-
2024-06-20-Recurrent Neural Network TOP NEW
Motivation 在现实生活的许多场景中,我们都需要处理输入或输出为序列的数据,他们往往在时序关系上存在前后文之间的相互联系,输入与输出不一定相同所对相应的数据维数,如处理语言、音频文本、音乐生成等。 而对于传统的线性全连接层神经网络,由于输入数据时对于上下文的关系考虑较少,所以在处理序列问题上表现出的准确性较低,我们需要更多地考虑建立起能够充分考虑上下文文本关系的模型。 统计学工具 自回归模型 核心为基于给定时间段的输入情况有效估计将来参数 $$ P(x_{t}|x_{t-1},\dots,x_{t-\gamma}) $$ 隐变量自回归模型 保留对过去观测的总结 h,并且同时更新下一步的观测值并总结 h Notation $$ \begin{align} ... Read More
-
2024-06-19-Convolutional Neural Network TOP NEW
Motivation [!Important] 为什么采用 CNN 计算开销 传统的全连接层架构在处理维数非常高的参数数据时所带来的参数开销几乎无法接受,训练效率与成本无法接受 特征捕获能力 全连接层架构将所有的输入都展平,丧失了样本数据原有的空间特征 我们希望有操作能够同时满足以下性质: 平移不变性: 图形的特征并不因平移而改变 局部性:神经网络前几层仅探索局部性质 我们将 $[H]{ij}$ 记为隐藏层的输出, 其对应的输入为 $[X]{ij}$(图像在位置 (i,j) 所对应的像素) $$ [H]{ij} = [U]{ij} + \sum_{k}\sum_{j}[W]... Read More
-
2024-06-19-Computations in DeepLearning TOP NEW
Layer and Block 定义 [!Important] Concept 块可以描述单个层、由多个层组成的组件或者模型本身。使用块进行抽象可以将块组合成更大的组件。本质上为对多层进行进一步封装与模块化设计。 自定义块 块的基本功能 将输入数据作为前向传播的参数 通过前向传播计算输出,同时关注输入到输出维度的变化 计算输出关于输入的梯度 (Automatic Differentiation) 存储和访问前向传播计算所需的参数 初始化模型参数 使用 Python 的类设计块 1 2 3 4 5 6 7 8 9 10 11 12 13 import torch import torch.nn as n... Read More
-
2024-06-16-Intro to Pytorch TOP NEW
利用 Pytorch 的基本框架 确定训练数据集 实现对训练数据集的遍历 搭建神经网络架构 定义损失函数 定义优化函数 更新参数 量化模型性能 确定训练数据集 Pytorch 为数据提供的相关包: import torch from torch import nn from torch.utils.data import DataLoader from torchvision import datasets from torchvision.transforms import ToTensor 从 Pytorch 自带的数据包导入数据 root is the path where the train/test data is st... Read More
-
2024-06-15-Structuring Machine Leanring Projects TOP NEW
综论 当我们尝试优化我们的深度学习模型时,我们常常有多种思路或想法可以选择,在众多选择的情况下,我们需要更为系统的策略来指导我们以尽可能快的速度优化我们的模型,这就需要系统化的优化策略。 正交化 (Orthogonalization) 核心思想 正交化的核心思想在于将模型优化的不同方向分开独立处理,避免在执行一次优化时各个优化指标相互耦合,彼此制约,导致优化难以推进或者需要频繁做出权衡。 单一数字评估指标 当我们优化我们的模型时,相比采用多个参数来量化我们模型的性能,更直接的解决策略是设法设立一个单一的量化指标,能够给我们直接的优化思路与比较策略。 例如利用 $F_{1}$ 分数将 precision 与 recall 参数结合 $$ \begin{align} &am... Read More
-
2024-06-15-Optimizing Algorithms TOP NEW
Mini-batch Gradient descent 背景 当训练的数据集规模十分庞大时,即使我们采用向量化加速并利用并行计算,进行一次梯度下降的训练耗时依然很高。为了优化算法的执行速度,我们考虑将训练集划分为规模更小的 mini-batch 的集合,在遍历 mini-batch 的过程中实现梯度下降。 实施 分割 将初始样本集分割为若干个大小一定的 mini-batch,mini batch 的数量为 t $$ \begin{align} & X = \begin{bmatrix} x^{(1)},\dots,x^{(m)} \end{bmatrix} = \begin{bmatrix} x^{{1}},\dots,x^{{t}} \end{bmatri... Read More
-
2024-06-15-Hiperparameter Tuning & Batch Norm TOP NEW
超参数调节 (Hyperparameter Tuning) 参数重要性 (直觉) Learning Rate: $\alpha$ exponential parameter: $\beta$, number of hidden units, mini-batch size number of layers, learning rate decay 调试过程 常见的调试方式: Use grid to choose parameters: 将多参数以一定的范围轴划分,规则取点 Randomly choosing 在给定区域内随机去点 ->相比在网格范围内规则取点,随机化取样能够更好地探索模型对于不同的超参数的敏感程度,能够在节省训练时间的同时使... Read More
-
2024-06-14-Practical Aspects of Deep Learning TOP NEW
数据集分类 为了不断优化我们所采用的深度学习框架,我们需要在实践过程中根据反馈结果不断迭代优化我们的算法或者超参数的选择,这就需要我们对所使用的数据有提前规划。 深度学习所采用的数据集在用途上可划分为三类,分别是:训练集 (train sets),验证集 (dev sets),测试集 (test sets) 开发集(Dev Set) 定义: 开发集,也称为验证集(Validation Set),是从训练数据中分离出来的一部分数据,用于在模型开发过程中进行模型选择和参数调优。 用途: 模型选择:在开发集上评估不同模型的性能,以选择最佳模型。 参数调优:在开发集上调整模型的超参数(如学习率、正则化参数等),以找到最佳超参数组合。 过拟合检测:通过监控开发集上的性... Read More
-
2024-06-14-Intro to Neural Networks TOP NEW
总体结构概览 Input layer -> Hidden Layer -> Output Layer Input layer: 输入的数据集,通常通过将原始数据表征为高维向量形式,再通过将不同的输入数据所对应的高位向量堆叠起来形成完整的矩阵。 Hidden Layer: 隐藏层的含义,隐藏层中的节点数据并不直接包含在输入数据集中,而是通过参数的初始化与训练的反复迭代而形成。 在无监督学习中目标结果也未在初始训练数据集中给出 Output Layer 输出层则负责训练的最终预测值,通常与目标结构相结合计算损失函数 计算框架 前向传播 前向传播的核心思路主要包括两层,先对前一层的激活值进行线性组合再加上偏移值,再通过对前一步所得到的结果施加激活函数... Read More
-
2024-06-12-Loss Function TOP NEW
-
2024-06-12-Logistic Regression TOP NEW
背景 Binary Classification Logistic regression(逻辑回归) 通常用于处理二分类问题 (binray classification), 在二分类问题中,模型的任务为根据训练数据集给输入的数据集以 0 或 1(或正或负) 等二元标签来分类。 数据处理 将原始的数据转化为可被当前模型容易处理的格式,同时包括向量化 (Vectorization) 与归一化 (Normalization),前者便于进行并行计算提高计算效率,后者则有利于平衡不同特征对最终权和的影响并通过控制特征值的范围保持数值的稳定性。 以图像处理为例 将一张由 $a * a$ 个像素点的图片利用每个像素的 RGB 值输出一个特征向量 $v$,其中 $v \in \math... Read More
-
2024-05-27-World Quant Brain TOP NEW
World Quant平台学习 Alpha 概念: Alpha即为一个用来预测当下金融市场的数学表达式,可以与之前所学的technical analysis相结合,构造相应的公式从市场交易中获利。 Websim相关术语: Universe: 当下alpha基于的数据集与回测集 Pnl: daily_pnl = sum of (position * daily_return) Information Ratio: 强调当下模型的预测能力 $IR = \frac{mean(Daliy_{pnl})}{std(Daily_{pnl})}$ $Sharpe = \sqrt{252}*IR$ Turnover: 换手率,体现交易的频次 Drawdown: 刻画最大可能损失,体现... Read More
-
2024-05-27-Technical Analysis TOP NEW
General picture 技术分析: Based on the past market data including prices and volumes to analyze or predict the direction of prices. Technical indicators(技术指标) Trend indicator Simple Moving Average(SMA): principle: calculate the average history data and can adjust the duration of history to determine the trend duration tradi... Read More
-
2024-05-27-Portfolio Theory TOP NEW
Types of risks Specific risks: associated with a specific asset Systematic risks: common to all securities Diversification and Portofolio theory Argument: The theroy assumes that the risk-return profile of a portfoliocan be optimized, where an optimal portfolio displays the lowest possible level of risk for its level of return. ... Read More
-
2024-05-27-Portfolio Optimization TOP NEW
-
2024-05-27-Pairs trading TOP NEW
Basic ideas: Statistical strategy -> try to build correlations between different stocks Example When a well established price correlation between A and B broke down, i.e. stock A traded up while B traded down, they would sell A and buy B, betting that the spread would eventually converge. Advantages: Market Neutrality Mark... Read More
-
2024-05-27-Fundamental Analysis TOP NEW
-
Analysis of the sample TOP NEW
Analysis of the sample Judgement Deontic, Non-normative, Evaluative deontic obligatory义务性的,强制的(常用should, must, ought),做直接的判断(right, wrong),duty, unjust,祈使句 eg. People have the right to watch the movies they want evaluative(评价性) 做道德判断与评价(good, neutral, bad),better than, worse than, 通常判断的程度是可分级的 eg. Most people are honest and kind, life i... Read More
-
伦理学 TOP NEW
-
2024-05-27-Use of Pointers TOP NEW
Strings String Literals: data type: const char * declare a string: const char * str = "Hello World\n"; str is a pointer, pointing to an array of characters, so the elements in the string will be stored in consecutive memory locations. print a literal string:printf ("%s\n", str); ***Notice: 1 const: indicates that we can’t modify the char... Read More
-
2024-05-27-Testing and Debugging TOP NEW
Test Idea: Testing is to find bugs in the code -> The corner cases should be good testing examples Black Box Testing: The tester considers only the expected behavior of the function—not any implementation details—to devise test cases Advantages: One advantage is that if you have a comprehensive test-suite written before y... Read More
-
2024-05-27-Recursion TOP NEW
An alternative to iteration Definition: Recursive functions are those functions that call themselves, which can be an alternative to iteration. Idea: Discover the similar structure to solve a problem, and find the correlation between current item with previous items Theory: The principles of recursion can be compared with mathematical ... Read More
-
2024-05-27-Pointers TOP NEW
Pointers Basic Concepts: Concept: Pointers are way of referring to the memory location of a variable.(A variable type) Geometry understanding: Arrow ->(Points to somewhere) Hardware implementation: Pointer memory location stores the location of the variable it points Basic Operations: Declaring a Po... Read More
-
2024-05-27-Overloading and References TOP NEW
Dynamic Allocation in C++ 2024-05-27-Dynamic Allocation in C Use new to create new instances prototype of new new <classname> (args,...) new will return a pointer to a constructed class instance Use () to include arguments passed to constructors, omitted if there are no arguments On failure new throws an exception, which terminates ... Read More
-
2024-05-27-More on C++ TOP NEW
The difference between C and C++ Compile in C but not in C++ References and Pointers [[ 2024-05-27-Overloading and References#Reference ]] Dynamic allocation [[ 2024-05-27-Overloading and References#Dynamic Allocation in C++ ]] Basic I/O in C++ Basic Library in C++ iostream: iostream stands for standard input-output stream... Read More
-
2024-05-27-MIT missing semester TOP NEW
Lecture1 Shell 1.common command: date echo: 1.usage: prints out the argument you given and space can separate different arguments 2.echo $PATH:present all paths executable which echo: find out which file is executed path related cd: change to another path pwd: see the current path “..” refers to parent directory “.” refers to current di... Read More
-
2024-05-27-Interacting with user and systems TOP NEW
Introduction to operating systems Background Since many operations has to be accomplished with the assistance of hardware, but for most programs they can’t directly have access to hardware for safety. In this case, they will take operating system(a lower level software responsible for managing all of the resources on the system) as med... Read More
-
2024-05-27-Hierachies C to C++ TOP NEW
Hierarchies of structures Motivation Basic concept We want to organize and structure massive inter-relatd data -> Apply type hierarchy which is a way to organize and structure a hierarchical tree. [!Note] Type Hierarchy Each node in the tree represents a class and the edges represent the inheritance relationships between these classes... Read More
-
2024-05-27-Dynamic Allocation in C TOP NEW
Motivation Since the stack frame will be tear down after a function call, we can apply dynamic allocation to allocate memory to store some data created during a function call. Or sometimes we need to dynamic reszing our data memory location to fit the need need. Storage location: heap The standard C library including dynamic allocation ... Read More
-
2024-05-27-Containers and Iterators TOP NEW
Containers Concept Container is a data structure containing other data structures with specific access capabilities. Example: linked lists, heaps, dynamically-sized array Optimization of a list structure Method 1: Create a list element structure with a data pointer(void*) Pros: Write the list code once Cons: Requires more memory ac... Read More
-
2024-05-27-Compile and Running TOP NEW
**## Compile Overview: Translate the programming language into a machine-executable format. The complier will take your source code as input and writes out the executable file. Compilation Process: Apply man for manual page to see the basic information, and you can apply man man to see the details of manual command Notice: man -k for key... Read More
-
2024-05-27-Arrays and Struct TOP NEW
Array Motivation Deal with multiple variables with similar properties and structures, it can help us eliminate the tedious work Definition: An array is a sequence of items of the same type Array Declaration and Initialization int myArray[4] int myArray = {1,2,3,4} Declaration: The array declaration should include the data type of ... Read More
-
2024-05-27-Access Control & Constructors,Destructors TOP NEW
Access Control Difference between access control and scope [!Important] Difference Scope: Scope means visibility, which considers the ability whether the complier can recognize a variable/structure/function. Access Control Access control is the ability that whether a code can access(modify) a variable/structure/… ... Read More