Goh Yong Kheng
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # Chang Dick Mun's log # Main Research Direction - build component-wise adaptive learning rate incorporated with SGD for deep learning. - Develop python code so that to check the efficiency of the proposed algorithm. - Establish the convergence properties of the proposed algorithm. - Applied the proposed algorithm into PINN. ## Motivation - Not all of the parameters in a vector are suitable to use the same scalar of learning rate at each iteration. - Fixed and adaptive learning rate are not a best learning rate in this case. Goal: - use multiple adaptive learning rate (diagonal) incorporate with SGD instead of adaptive and fixed learning rate. - arrange all spectrums (learning rate) in matrix to find the optimal solution when the point $x$ stuck at the position at least 5 iterations. ## positive definite $z^TQz$ - $z$ & $Q$ not necessary is positive. - $Q$ either all positive or eigenvector is positive - $z$ have two, so can get positive after multiply it. # Theory and the calculation of conjugate gradient and BFGS ## Conjugate gradient - Conjugate gradient method is an algorithm for the numerical solution of particular systems of linear equations, namely those whose matrix is positive-definite. - The conjugate gradient method can also be used to solve unconstrained optimization problems such as energy minimization. $d_k=-g_k+\beta_k*d_{k-1}$ $d_k$->conjugate vector $g_k$->residual at the *k* step-> $g_k=b-Ax_k$ ($b$ as a coefficient matrix) $d_{k-1}$-> previous conjugate vector $\beta_k$ ->scala(constant) ->adjust direction ### Residual formula $g_0=b-Ax_0$ - $g_0$=>negative gradient of $f$ at $x_k$,so the gradient descent method would require to move in the direction $g_0$. $z_0=M^{-1}g_0$ - $M^{-1}$=>symmetric positive-definite and $M^-1A$ has a better condition num A. ### Fletcher-Reeves formula $\beta_k=(r^T_{k+1})(z_{k+1}))/(r^T_kz_k)$ - less num of function evaluation - less computational time - less iteration ### Comparation between Conjugate gradient and Steepest descent - $\beta_k$=0 in steepest descent in order to make them locally optimal. - Every iteration of steepest descent methods is a bit cheaper compared to the conjugate gradient methods. ### Reference [Conjugate gradient](https://en.wikipedia.org/wiki/Conjugate_gradient_method#As_an_iterative_method) ## BFGS - The Broyden–Fletcher–Goldfarb–Shanno (BFGS) algorithm is an iterative method for solving unconstrained nonlinear optimization problems. - BFGS determines the descent direction by preconditioning the gradient with curvature information. - It is a type of second-order optimization algorithm, meaning that it makes use of the second-order derivative of an objective function and belongs to a class of algorithms referred to as Quasi-Newton methods that approximate the second derivative (called the Hessian) for optimization problems where the second derivative cannot be calculated. - The first derivative of multiple input variables may also be a vector, where each element is called a partial derivative. This vector of partial derivatives is referred to as the gradient. - **Gradient**: Vector of partial first derivatives for multiple input variables of an objective function. - This idea generalizes to the second-order derivatives of the many kind of inputs, which is a matrix containing the second derivatives called the Hessian matrix. - **Hessian**: Matrix of partial second-order derivatives for multiple input variables of an objective function. ![](https://i.imgur.com/Blo0Nc3.png) ## Those formulas relate to BFGS $d_k=-B_kg_k$ (Quasi-Newton) $\alpha=\frac{1}{y_k^Ts_k}$ $\beta=-\frac{1}{s^TB_ks_k}$ $u=y_k$ $v=B_ks_k$ ### Hessian approximation $B_{k+1}=B_k+U_k+V_k$ $B_{k+1}=B_k+\alpha uu^T+\beta vv^T$ $B_{k+1}=B_k+(y_ky^T_k)/(y_k^Ts_k)-(B_ks_ks_k^TB_k^T)/(s_k^TB_ks_k)$ (BFGS) - $B_k$=>approximation Hessian matrix in *k* steps - $y_k$=> $df(x_{k+1}) - df(x_k)$ - $s_k$=> $x_{k+1} - x_k$ - ## Image filter techniques ### deep learning Advantage - less time needed ### deep image prior - time consuming ### classical ## Image deblurring ### Definition Image deblurring is a type of image restoration that focuses on restoring clean images by removing distortions. ### Algorithms There are numerous image deblurring algorithms, from classic methods that mathematically estimate the blur kernel and then reverse its effect; to more recent machine learning based methods that benefit from recent advances in machine learning and deep learning. #### Image Deblurring techniques - multi scale architectures - multi-stage progressive image restoration network(MPRNet in CNN) - prior-based blind deblurring ### Why image deblurring so difficult to solve - A lot of knowledge in deep learning field is necessary - A lot of data was needed?? [Image Deblurring](https://saiwa.ai/blog/image-deblurring-1/#What_is_image_deblurring) [Deblurring and denoising](http://fph.altervista.org/dida/dott19/l4.pdf) ## Image denoising ### Definition Image denoising is a function to remove noise from a noisy image, so as to restore the true image. Noise: Random variation in brightness or colour information and it is frequently produced by technical limits of the image collection sensor or by improper environmental circumstances. ### techniques for image denoising - DnCNN - Spatial Filtering - Transform Domain Filtering #### Spatial Filtering A traditional way to remove noise from image data is to employ spatial filters. Spatial filtering is the method of choice in situations when only additive noise is present. #### Transform Domain Filtering The transform domain filtering can be divided according to choice of basic functions. They mainly classified in to the non-data adaptive transform and data adaptive transform. [Image Denoising techniques](https://www.google.com/url?sa=t&source=web&rct=j&url=https://www.iosrjournals.org/iosr-jece/papers/Vol.%252011%2520Issue%25201/Version-1/L011117884.pdf&ved=2ahUKEwjRmIP1hKj8AhUH9zgGHezbBIkQFnoECAgQBg&usg=AOvVaw0dc0Vz3grpNmZVricxiR3m) ### Why image denoising so difficult to solve - Denoising an image is a difficult task since the noise is tied to the image’s high-frequency content, such as the details. The denoised images could inevitably lose some details when the image was denoising. Hence, our goal is to strike a balance between suppressing noise as much as possible while not losing too much information. [Different Types Noises and Image Denoising Methods](https://analyticsindiamag.com/a-guide-to-different-types-of-noises-and-image-denoising-methods/#:~:text=Denoising%20an%20image%20is%20a,not%20losing%20too%20much%20information.) # Optimisation Theory # Gradient Method $d_k+1=d_k+alpha_kd_k$ $alpha_k$-> steplength $d_k$->direction ## Steepest descent $d_k= -g_k$ Disadvantage: When more closing to the goal, more frequently to change direction. ## Conjugate gradient Flexure reff – 1st non linear in the world $d_k=-g_k+\beta_k*d_{k-1}$ $beta_k$ ->scala(constant) ->adjust direction [Fletcher reeves source](http://www.mymathlib.com/optimization/nonlinear/unconstrained/fletcher_reeves.html) ## Newton $d_k=-H^{-1} g_k$ $H_x$ -> Hessian matrix (to determine the curvature of function) ## Quasi-Newton (FAMILY) BFGS - Disadvantages - costly - time consuming - approximate full rank of $H_k^{-1}$ [BFGS source](https://en.wikipedia.org/wiki/Broyden%E2%80%93Fletcher%E2%80%93Goldfarb%E2%80%93Shanno_algorithm#Algorithm) ## Spectral gradient Start from 1988 - Barzilai Borwein method(BB method) - 2018 (Sim) - Spectral gradient method - approximate eigenvalue of the actual Hessian Disadvantage for Spectral gradient: not accurate compare to the Quasi-Newton ## Steplength $\alpha_k$ Method: - Armijo line search - Strong Wolfe ### Question <hr/> References here ... # Dr Goh ## Potential vs Force field The relationship between potential funtion $U(x,y,z)$ and the force field generated by $f$ is $$\vec{F} = \nabla U.$$ One type of force field that is interested in physics is conservative force field. Roughly speaking, it is related to the principle of conservation of energy. A conservative force field is - work done $W = \int \vec{F}\cdot d\vec{r}$ is path independent. - $\vec{F}$ can be written as a $\nabla U$. Mor info see https://tutorial.math.lamar.edu/Classes/CalcIII/ConservativeVectorField.aspx ## Curl and Div see https://tutorial.math.lamar.edu/Classes/CalcIII/CurlDivergence.aspx ## Refresher on Line Integral https://tutorial.math.lamar.edu/Classes/CalcIII/LineIntegralsVectorFields.aspx 22/12/2022 - Learned about optimization, differences between search method and gradient method - Learned optimization’s coding in python language. - Homework: done Conjugate Gradient python code. 26/12/2022 - Understand Convolutional Neural Network (CNN) - Understand how CNN relate to the Optimization 3/1/2023 - Present the Conjugate Gradient python code and BFGS python code. - Understand image deblurring and denoising in CNN - Understand the algorithm and theory of CG and BFGS 9/1/2023 - Present about DFP and CNN - Homework: Do a part of Introduction in PD 16/1/2023 - Discuss introduction of proposal defence. - Set a path on my Literature review. (Give some advises) 1/2/2023 - Discuss about problem statement and objective - Homework: do objective and research methodology 8/2/2023 - Research methodology has problem, redo it - Do ppt 15/2/2023 - present about research methodology and learning rate on literature review. - debug python code. 23/2/2023 - draft the presentation slide. - do research on armijo line search & Spectral gradient method (Barzilai-Borwein method). 1/3/2023 - present the research on armijo line search & Barzilai-Browein (BB) gradient method. - Set a path/direction for preliminary result. 6/3/2023 - present the Physics-Inform Neural Networks(PINNs) - Discuss and correct the python code of preliminary result. 23/3/2023 - show and present the priliminary result. - Discuss and optimize the python code of priliminary result. - Discuss and correct the presentation slide of Proposal Defence. 29/3/2023 - discuss about priliminary result's code. - present handwriting BFGS algorithm. - show Proposal Defence report. 5/4/2023 - Discuss and do correction on proposal defence report. - prepare intent form of proposal defence. 10/4/2023 - Discuss and receive some suggestion for presentation slides of Proposal Defence. - Homework: optimize presentation slides and prepare preliminary result (if can). 19/4/2023 - Discuss about detail of proposal defence. - Prepare for mock presentation. 26/4/2023 - mock presentation. 2/5/2023 - Proposal Defence. (2pm-3pm) 12/5/2023 - do correction of proposal defence report. - modify according the comments from proposal defence's panels. 20/5/2023 - brief about the correction of proposal defense report. - remind supervisor and co-supervisors sign for the proposal defense's correction form. - Homework: hand calculate for the steepest descent of the multiple variable function. 23/5/2023 -discuss about hand calculate result and recorrect it. - Homework: do three methods of iteration method in optimization with multiple variable function. 8/6/2023 -show and present about the result of hand calculation. -do research on the multiple damping gradient method. 16/6/2023 -show the code of multiple damping gradient method. - Do some correction on the multiple damping gradient's python code. 22/6/2023 -complete more than 20 tested problem and applied in the optimization method. -create an updating formula based on multiple damping gradient method. 30/6/2023 - discuss about the updating formula and modify it. 14/7/2023 - show the result of the updating formula of spectral gradient method. - Homework: create a table and plot a line graph of those results. 21/7/2023 - show the graph result of the updating formula. - work more tested problems. 28/7/2023 - discuss about the modified updating formula's graph result. - learn how to create profiling graph. 11/8/2023 - show profiling graph until TP18 (DIXAANB). - start construct abstract of the updating formula. - prepare for presentation on 8/11/2023. 25/8/2023 - show the progress of external abstract for colloqium. - modify the external abstract. - gain more knowledge for optimization and improve presentation skill. 8/9/2023 - Discuss and modify external abstract. - review some neural network for application of updating formula. - homework: construct a bulletin for optimization. 25/9/2023 - discuss bulletin. - discuss neural network that need to apply. - homework: how optimization affect neural network system? 6/10/2023 - report numerical result of the updating formula of component wise adaptive learning rate. - discuss and teach student neural network. - homework: Study and build neural network, modify the algorithm of gradient methods, prepare presentation slides for colloqium. 20/10/2023 - show presentation slides for colloqium and have a rehearsal. - discuss and modify the draft of conference paper. - learn about build a neural network by using custom optimizer in tensorflow. 03/11/2023 - discuss and modify presentation slides. - discuss stopping criteria of the proposed algorithm. 10/11/2023 - difference between Newton method and Newton-Raphson method. - apply the updating formula in the inverse of image processing. 14/11/2023 - learn about image processing and inverse image processing. - Homework: write a python code for inverse image processing by using linear algebra and optimization method. 17/11/23 - discuss title of the coference paper. - modify abstract. - learn and discuss how to apply the proposed method to image processing. 24/11/23 - discuss modified abstract, thus submit to ICMSA 2024. - show the results of image deblurring. - Homework: measure the similarity between ground truth image and restored image. 1/12/23 - discuss and modify the result of image processing by using iteration method in optimization. - show the similarity of image between gauth truth and restore image. 7/12/23 - fix the error of the result of tested problems and image deblurring. - discuss the result of the conference paper. 12/1/24 - discuss the image deblurring result. - discuss the profiling graph linestyle. - modify proceeding paper. 15/1/24 - discuss and modify the proceeding paper. 23/1/24 - find and fix the problem of deblurring image. - learn how to do convergence analysis. - start write section 1 and 2 of thesis paper. 2/2/24 - discuss convergence analysis of the proposed method. - hoemwork: continue to learn more about convergence analysis. 1/3/24 - discuss and revise ICMSA 2024 proceeding paper. 8/3/24 - revise ICMSA proceeding paper. 22/3/24 - prepare the presentation slide for ICMSA 2024 proceeding paper. - Discuss convergence analysis of our proposed method. 12/4/24 - check and modify presentation slide for ICMSA 2024. - discuss convergence analysis of our proposed method. 19/4/24 - discuss and modify the proceeding paper. 26/4/24 - mock presentation for ICMSA 2024. - fix the correction for the presentation slide. 3/5/24 - discuss and modify convergence analysis of the proposed method (DVM). 10/5/24 - discuss and modify convergence analysis of the proposed method (DVM). 31/5/24 - discuss and modify convergence analysis. - planning future work. 4/6/24 - discuss the last part of convergence analysis. 21/6/24 - discuss work completion's summary, and the date of presentation. - modify the summary of work completion. 28/6/2024 - prepare for work completion. - check and modify the summary for work completion. 5/7/2024 - do some correction on theorem 1 in convergence analysis. - start prepare the presentation slide for WCS. 12/7/2024 - check and modify the presentation slide of WCS. 19/7/2024 - check and modify the presentation slide of WCS. - homework: continue work on thesis. 26/7/2024 - prepare for WCS. - homework: continue work on thesis. 7/8/2024 - Work Completion Seminar. QnA question: - Computational time must include in image deblurring. - explain the profiling graph (know how to construct the graph) - log-determinant norm 9/8/2024 - discuss the correction need to do after WCS. - continue to complete the thesis. 13/9/2024 - discuss compressed sensing. - check and submit colloqium. - set the date to submit intent form of thesis. 14/10/2024 - discuss compressed sensing. - modify compressed sensing's code. 8/11/2024 -

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully