Cedric Chee's Personal Knowledge Base
website·Indexed 32 days ago
https://wiki.cedricchee.com/A collection of personal study notes, curated resources, and course summaries covering computer science, machine learning, and software engineering. Includes detailed notes from fast.ai deep learning and machine learning courses, documentation on programming languages like Rust and JavaScript, database resources for Redis and SQLite, and summaries of 'A Philosophy of Software Design' by John Ousterhout.
What's inside Cedric Chee's Wiki
- Batch Normalization acts as both a regularization technique and a training helper to accelerate deep network training. While originally proposed to reduce 'internal covariate shift,' subsequent research suggests that this intuition was incorrect and that the actual mechanism for its success is different.
Overview of JavaScript language characteristics
JavaScript (JS) is a high-level, interpreted, or JIT-compiled programming language characterized as dynamic, weakly typed, and prototype-based. It is a multi-paradigm language supporting event-driven, functional, and imperative (including object-oriented) programming styles. While it provides built-in APIs for text, arrays, dates, regular expressions, and DOM manipulation, it relies on the host environment (e.g., web browsers, Node.js, databases) for I/O operations such as networking, storage, and graphics.Overview of Redis
Redis is an in-memory data structure store used as a distributed, in-memory key-value database, cache, and message broker. It provides optional durability for data persistence.Overview of Multi-object Detection concepts (Lesson 9)
Multi-object detection involves moving from identifying a single object to multiple objects within an image. Key concepts include:
- Single Shot MultiBox Detector (SSD): Uses a loss function combining localization and classification losses across multiple objects and leverages different receptive fields of CNN layers.
- YOLO v3: A real-time object detection framework.
- Focal Loss: A technique used to handle extreme foreground-background class imbalance during training.
Overview of Object Detection tasks
Object detection involves two simultaneous tasks: localizing objects (finding where they are and drawing a bounding box around them) and classifying those objects. Using a single model for both tasks (multi-task learning) generally performs better than using separate models for localization and classification.Overview of fastai library applications
The fastai library is built on top of PyTorch and provides high-level APIs for four primary deep learning applications:
- Computer vision
- Natural language text
- Tabular data
- Collaborative filtering
Overview of Neural Style Transfer and Image Enhancement
Neural style transfer is an image enhancement technique that allows changing the style of an image by optimizing pixels instead of model weights. A practical application of this is 'Deep Painterly Harmonization', which involves pasting one image onto another and using style transfer to combine them seamlessly.Overview of Generative Adversarial Networks (GANs) and Variants
Generative Adversarial Networks (GANs) utilize a unique loss function where a Generator and a Discriminator compete. The Generator creates outputs, and the Discriminator attempts to distinguish them from real data; this process results in a model capable of producing highly realistic outputs.
Key variants include:
- Wasserstein GAN (WGAN): A variant that is easier to train and more resilient to hyperparameter changes.
- CycleGAN: Allows for image generation even without paired training data, enabling unpaired image-to-image translation.
Overview of Sequence-to-Sequence (seq2seq) Models for Translation
A sequence-to-sequence (seq2seq) model is designed for tasks where both the input and output are sequences that can differ in length. In Neural Machine Translation (NMT), this is used to transform a source language sentence (e.g., French) into a target language sentence (e.g., English). Key advantages of NMT over statistical machine translation include end-to-end training (removing the need for manual feature engineering), the use of distributed representations, and the ability of RNNs to maintain long-term state for better context and fluid text generation.Overview of the fast.ai Machine Learning 2017 Course
The fast.ai Machine Learning 2017 course, taught by Jeremy Howard and Rachel Thomas, uses a top-down teaching method. It utilizes thefastailibrary built on top of PyTorch. The curriculum is divided into two primary focuses: Decision Trees with Random Forests and Neural Networks for Deep Learning. Unlike the more intense Deep Learning course, this version focuses more on process, interpretation, and foundational details rather than building state-of-the-art models immediately.Overview of Super Resolution in Deep Learning
Super resolution is a technique using convolutional neural networks (CNNs) to restore high-resolution details from low-resolution images. For example, a model can be trained to upscale a 72x72 image to 288x288. Because these vision models are typically not tied to a specific input size, a model trained on these dimensions can be applied to larger images (e.g., 288x288) to produce an output 16 times larger than the original. A key advantage of this task is that datasets can be generated without manual labeling by downsampling high-resolution images to create the low-resolution inputs.Overview of fast.ai Lesson 3 Deep Learning topics
Lesson 3 covers several advanced computer vision and NLP tasks and techniques:
- Multi-label classification: Using the Kaggle Planet Amazon satellite image dataset.
- Image Segmentation: Using the CamVid dataset and U-Net architecture.
- Image Regression: Using the BIWI head pose dataset.
- NLP Classification: Text classification techniques.
- Core API/Concepts: fastai Data Block API, DataBunch class, Learning rate annealing, Mixed precision training, and the Universal Approximation Theorem.