3 ms·
I'm a current CS student. I've heard that Linear Algebra is a worthwhile class for students studying Computer Science. Yet, my program doesn't have it as a requ
by zeroego 7y ago
I'm a current CS student. I've heard that Linear Algebra is a worthwhile class for students studying Computer Science. Yet, my program doesn't have it as a requirement. Can anyone explain in broad terms if this course is something I should consider taking anyways?
- vkou 7y agoIf you ever intend to have anything to do with machine learning, computer graphics, or work for a quant firm[1], yes. If you want to work on adtech, CRUD apps, or uber-but-for-catsitters startups, probably not. I have been working on two out of the three for a decade, and in all this time, I haven't had to use a lick of linear algebra. From an academic standpoint, it's arguably a more useful course for your general education than calculus (Which is a requirement for just about any degree), but less useful than statistics. [1] If you ever intend to work for a quant firm, you should probably take a lot more math courses than just linear algebra.
- dbmikus 7y agoAdtech does a lot of machine learning, so at least a surface level understanding of linear algebra is useful there.
- vkou 7y agoOf the ~100 people in my immediate work area who work on a large ads product, about 4 of them do ML. The overwhelming majority of adtech is like any other enterprise business - building CRUD apps.
- rbtying 7y agoIf you're interested in graphics, animation, simulation, machine learning, or other topics, knowing the concepts in linear algebra will be worthwhile. Most higher-level math will be easier for you if you have familiarity with vector calculus and linear algebra, so if you're the kind of person who benefits from a structured class when learning new/weird ideas, it's worth studying in school. (I'd also generally recommend a course in probability and statistics)
- kace91 7y agoI'd tell you to give it a go, it can't hurt. But for your use case I'd consider the Essence of linear algebra series by 3blue1brown, which is free on youtube: https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x... In comparison, I'd say Strang's class is more formal and feels more like work, and those videos will be more fun while fullfilling the same purpose, to give you a lasting understanding of what linear algebra is and where it might come in handy.
- xhkkffbf 7y agoThe essence videos are great. Any other suggestions from the peanut gallery?
- PNWChris 7y agoI gained some great intuition from http://matrixmultiplication.xyz/ http://matrixmultiplication.xyz/ and (of all things) a paper named "An Introduction to Quantum Computing"[0]. Page 3 of that paper lays out matrix multiplication (e.g.: applying a "transformation matrix" in the spatial parlance of 3blue1brown's videos) as a traversal of a directed graph. This isn't super readable (it's from my notes to self), but my intuition is: Matrix multiplication is a graph traversal: * Each i,j in transform matrix (on left) pulls N (the value at that index) times the j-th value in the input vec (on right) into the i-th output vec index * This is equivalent to an N weighted vertex from the j-th node to i-th node, so i takes N of j's previous value * The input (right side) is a matrix? It's just multiple column vectors next to each other, repeat the above process and make a new output vector for each iteration [0]: https://arxiv.org/abs/0708.0261 https://arxiv.org/abs/0708.0261
- anjc 7y ago> I gained some great intuition from http://matrixmultiplication.xyz/ http://matrixmultiplication.xyz/ and (of all things) a paper named "An Introduction to Quantum Computing"[0]. Just wanted to say thanks for this paper. It really does help with intuition and it's not something I would've expected to get through.
- zeroego 7y agoThanks for all the responses everyone!
- alexhutcheson 7y agoVery loosely, you can think of "Linear Algebra" as "the type of math that computers are really good at". For this reason and others, it's really heavily used in many of the most interesting sub-fields of software development: ML, statistics, HPC, etc. It's also a topic that most people are unlikely to pick up on their own, even if they are somewhat motivated. Working through the exercises in a math textbook doesn't give most people the "feeling of accomplishment" feedback loop that e.g. playing with a new web dev framework does. For those reasons, I would highly recommend taking it in college, because the structure and commitment mechanism of a college course will help you get yourself through the material. One major caveat: In my opinion, courses that only cover pencil & paper "theory" exercises are much worse than courses that have a combination of pencil & paper work and problem sets that require the use of software tools like Matlab, Octave, or Python/NumPy. In the real world, you're always going to use software tools for the actual number crunching, so it's extremely valuable to get familiar with actually using them. It can also help you on problem sets in your other courses - using Matlab or Octave on your laptop is much faster and more pleasant than keying numbers into the matrix interface on a TI-84!
- ivan_ah 7y agoLinear algebra is like the Swiss Army knife of science, and it is used in pretty much all areas of science for modelling. I assume you remember high school math functions, and how useful they are to help us describe input-output relationships between real number inputs and real number outputs. Now imagine the inputs are vectors and the outputs are vectors too, in other words we would need vector-functions. Many problems in math, science, computing, economics, biology — you name it — are of this multidimensional nature, so the more you know about vector functions the better models you can build. As you can imagine describing arbitrary input-output relationships between high-dimensional spaces is quite complicated. Think of all the possible ways that a vector input vec{x} = [x1,x2,...xn] can affect the coefficients of a vector output vec(y) = [y1,y2,...ym]. If you allow arbitrary functions like quadratics, sine, cosine, exp, etc. there would be way too many different ways to map vec(x) to vec(y). Too many ways... This is where the "linear" part of linear algebra comes in. Instead of arbitrary input output transformations vec(x) --> vec(y), what if we restrict oursleves only to relationships where the output yi is some linear combination of the inputs x1 x2 .. xn, where linear combination means y1 = m11*x1 + m12*x2 + ... + m1n*xn in other words, take the outputs are equal to the inputs times some proportionality coefficients mij. The other output coefficients y2...ym are computed in the same way with different coefficients y2 = m21*x1 + m22*x2 + ... + m2n*xn ... ym = mm1*x1 + mm2*x2 + ... + mmn*xn thus the overall map vec(x) --> vec(y) has a total of m*n coefficients mij. This map between inputs vec(x) and outputs vec(y) is the vector-equivalent of the single-variable function y=mx (proportionality relationship, or line with slope m passing through the origin if your prefer to think of it geometrically). We call these maps "linear transformations" and they have really nice properties. If you study linear algebra you'll learn all about them. Computationally (usefully), geometrically (Whoooa moments), and theoretically (knowledge buzz). And that's just the math part! Once you start to look into applications, it goes really far... Others in this thread have already mentioned numerous areas of applications in CS areas, and it's the same in biology, chemistry, economics, etc. TL;DR: linear algebra is good stuff! PS: Here is a short video where I explain more about why linearity [normally written as f(ax1+bx2) = af(x1)+bf(x2)] is so important: https://github.com/minireference/noBSLAnotebooks#ch2-linearity https://github.com/minireference/noBSLAnotebooks#ch2-lineari...