Giter VIP home page Giter VIP logo

programmers-introduction-to-mathematics's People

Contributors

dependabot[bot] avatar j2kun avatar jj5 avatar sj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

programmers-introduction-to-mathematics's Issues

Test all the things

Make sure each chapter code is tested, and make sure that the tests are all the same style.

Unify use of typing module imports

Decide whether to use, e.g, list(int) or List[int] from typing. And make it consistent across all tips and solution code in the chapters.

Pedantic detail on precursor example to proof page 17

The expression

f(x) = \sum\limits_{i=0}^n y_i \cdot (\prod\limits_{j \neq i}^n \frac{x-x_j}{x_i - x_j})

is introduced on page 17. However, instead of starting at zero like the summation notation describes, you start at one. I am not sure if this example was just to get warmed up or if it really was the precursor explanation. Starting at zero here just seems to make more sense. Thoughts?

Change of basis matrix ordering issue

On page 192 of the first edition of the book, it says “Let A be the matrix representation of a linear map f, written with respect to the standard basis. Let U be a change of basis matrix. That is, the columns of U are the new basis vectors, and if we were to write f with respect to the new basis, its matrix would be B = UAU⁻¹.”

In fact, a matrix consisting of the basis vectors of U converts a vector from the U basis to the standard basis, so B should equal U⁻¹AU.

translation publication inquiry

Hi, I work for Hanbit Media, Inc., the largest IT publisher in Korea.
We have translated and published many English programming books here.
I think your book is also very helpful to Korean programmer readers.
Do you have any plan for publication in foreign countries?
If you are willing, I'll let our copyright agency contact you (again) to discuss the contract detail.
I appreciate your quick response.

I'd love to know how to get to interpolate() and single_term()

Section 2.4, "Realizing it in Code", assumes that I'll understand how to make the transition away from the sigma-and-pi version of things. I implemented the sigma-and-pi version in Javascript and it looks like a great way to get from any x input to a y output that "belongs to" the polynomial that was "defined" by the initial set of points I gave it. But it looks like all the values in there are those initial x and y values, and the output is a single (new) y value. I don't see how to make the journey from there to getting the array of coefficients that actually make up the "real" polynomial.

Wrong historical facts

I'm not a mathematician myself.

I have just skimmed through your book.
It seems you are trying a lot to say mathematics can exist without proof and can also be based on intuition. (Once again, I didn't read it completely).

Calculus as taught through out the academia, or discovered by newton is due to misunderstanding of Indian calculus, says C.K.Raju.

I don't think you yourself know the real history, rather you were taught in such way. (Euro-Centrism).

Indian's have clear lineage(improvements done over period of time), for development of algebra, trigonometry, infinite series, calculus...

Out of nowhere Europeans have produced this work, as their own, without proper proofs and background.

I'm linking here one of the work by C.K.Raju here.
Which suggests calculus is stolen from India.
Cultural Foundations Of Mathematics.pdf

Hoping, you will be as neutral as possible (If possible in your next-edition).

Thank you.

Bug: `successor.local_gradient_for_argument(self)` could be corrupted

Issue

local_gradient_for_argument might read a corrupted float value from the successor.

Say we have the computation graph:

    h
    |
    |
    f
  • $h$ has parameters $w$
  • $f$ has parameters $v$
  • $h : \mathbb{R}^m \to \mathbb{R}$
  • $f : \mathbb{R}^n \to \mathbb{R}$
  • $h$ is the successor of $f$
  • $E$ is the graph
  • $\frac{\partial E}{\partial w} = \frac{\partial{E}}{\partial{h}} \frac{\partial{h}}{\partial{w}}$
  • $\frac{\partial E}{\partial f} = \frac{\partial E}{\partial h} \cdot \frac{\partial h}{\partial f}$
  • $\frac{\partial E}{\partial v} = \frac{\partial E}{\partial f} \cdot \frac{\partial f}{\partial v}$
  • when doing backpropagation, the steps will be
    1. $h$ computes $\frac{\partial E}{\partial w}$ and caches $\frac{\partial E}{\partial h}$, and $\frac{\partial h}{\partial w}$
    2. $h$ updates $w$ to $w'$
    3. $f$ computes $\frac{\partial E}{\partial f}$ and $\frac{\partial h}{\partial f}$ is cached
      1. $\frac{\partial h}{\partial f}$ is not yet in cache, so $h$ will have to compute it now
      2. $\frac{\partial h}{\partial f}$ is computed based on the new parameter $w'$
        • This is the problem!
        • $\frac{\partial h}{\partial f}$ is corrupted
      3. $\frac{\partial h}{\partial f}$ is in cache now
      4. $\frac{\partial E}{\partial f}$ is computed by looking both $\frac{\partial E}{\partial h}$ and $\frac{\partial h}{\partial f}$ in cache
      5. $\frac{\partial E}{\partial f}$ is in cache now
    4. $f$ computes $\frac{\partial f}{\partial v}$ and caches it
    5. $f$ computes $\frac{\partial E}{\partial v}$ with $\frac{\partial f}{\partial v}$ and the corrupted $\frac{\partial h}{\partial f}$
    6. $f$ updates $v$ based on the corrupted $\frac{\partial E}{\partial v}$

Solutions

I can come up with two solutions

  • compute local_gradient ($\frac{\partial h}{\partial f}$) at the beginning of do_gradient_descent_step before parameters ($w$) is modified
  • the successor $h$ distributes local_gradient ($\frac{\partial h}{\partial f}$) and global_gradient ($\frac{\partial E}{\partial h}$) to $f$ before parameters ($w$) is modified

PS

Thank you for your book and the sample code so that I could deeper understand the neural network!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.