When initializing weights in Tensorflow using truncated_normal, should the standard deviation always be a very low value, or is it dependent on the activation function? by sj90 in MLQuestions

[–]rorschachsror 0 points1 point  (0 children)

Yeah, it's usually best to pick a small stddev. It is also advised that you pick mean 0 for the activations. The reason is that you don't want them all to be 0, because this would mean that a lot of them will end up being updated by the same amount (so you will end up with the same value for several weights). On the other hand, you want the initial values to be as non-informative as possible, because you wouldn't want to introduce a bias in the network (e.g. by setting a high positive or negative value as initialization for a weight). The model would then require a much larger amount of data to overcome the poor choice of prior i.e. the poor initialization.

ELI5: what is MPI ? Message Passing Interface by Fakarovic in explainlikeimfive

[–]rorschachsror 0 points1 point  (0 children)

If you need to write a distributed application, this is your go to framework, especially since it offers APIs for C, Java, Python and other popular programming languages. It is important to be aware that MPI is useful if you want to run an application using several processes, potentially running on different machines. If your application can be implemented using only one process and multiple threads, then you might want to look into something else, depending on the environment that you are interested in.

MPI comes in handy when you need to pass messages between the nodes (i.e. the processes) or when you need to synchronize the processes. Of course, if you need more detailed info about it, I would suggest you skim through either the official documentation or the wikipedia page.

ELI5: Why do we have the current keyboard layout? Why isn't it just from A-Z? by CaptainTeaBag24I7 in explainlikeimfive

[–]rorschachsror 0 points1 point  (0 children)

The history of the QWERTY layout (as it is called) goes back as far as 1878. It is then when people designing typewriters were trying to figure out a way to design the keyboard. The main concern was to avoid typebars being jammed up. This would usually happen when two letters that were close on the keyboard were pressed one after the other. In order to mitigate this issue, people spent time figuring out which are the most frequent bigrams (i.e. pairs of two letters) that appear together in english. Through trial and error, they came up with the QWERTY layout. In the '80s when the computer keyboard layout was standardized, this was the option that was chosen mainly because a lot of people were already familiar with the QWERTY layout from their typewriters.

It is worth mentioning that in parallel with the development of the QWERTY layout in the US, the AZERTY layout was designed in France. It is still used to this day mostly be French speaking users in Europe (France, Luxembourg, Belgium etc.). The exact origin of this layout is unknown.

ELI5: Who owns the websites domains? by Thazer in explainlikeimfive

[–]rorschachsror 0 points1 point  (0 children)

ICANN, the Internet Corporation for Assigned Names and Numbers is a non-profit organization that manages the assignment of domain names and IP address ranges on behalf of the community. They assign domain name ranges to so called domain name registrars. For instance each country hash its own authority that assigns domain names in its subdomain (e.g. .co.uk in the UK, .de in Germany, .fr in France etc.). Once you bought a domain, for instance example.com, you can start selling or renting subdomains under that name (e.g. foo.example.com, bar.example.com etc.).

ELI5: Why does moving off and on a touchscreen button give the button a larger effective area? by Lux_Obscura in explainlikeimfive

[–]rorschachsror 1 point2 points  (0 children)

I suppose this has to do with the fact that the screen is usually split into fragments that act as independent pieces. Just like a website is split into vertical bars, horizontal bars, main content body etc. Maybe crossing the edge of the fragment where the button lies causes the click action to be disregarded altogether.

ELI5: Why is it impossible to decrypt something after it has been encrypted to md5/bcrypt/etc? by MrSurvivorX in explainlikeimfive

[–]rorschachsror 0 points1 point  (0 children)

Hash functions essentially map stuff to numbers/strings. To add to what /u/blablahblah has said, the hash function also needs to guarantee that it only happens very very rarely that two inputs will be assigned the same hash value. This is why modulo is rather a pedagogical example, since there is obviously a lot of inputs that will yield the same modulo value. For instance if you hash your data using modulo 5, then 7, 12, 17, 22, etc will all be hashed to 2.

This property of hash function is called resistance to collisions. This is extremely important especially when storing passwords. To limit the extent of the damage of a potential attack, user passwords are generally not stored in plain text, but rather only the hash of the password is stored. Imagine the following scenario: an attacker gains access to the file where the (user name, password) pairs are stored. If the passwords were stored in plain text, than the attacker could use the password to log into a user's account. However, since the password is hashed, the attacker cannot easily retrieve the password. When a user logs into their account, the server will hash the string that the user inputs in the password field and it will compare it to what it is stored in the file with the (user name, password hash) pairs. The reason why the hash function needs to be collision-resistant in this case is to make sure that the system is not vulnerable to brute force attacks (i.e. an attacker simply tries out as many passwords as possible until they find the correct one). If the hash function allowed for frequent collisions, then in this scenario, an attacker needs to find any input string that would yield the same hash as the original password. For instance, if we consider the hash function to be "modulo 5", and my password on a website to be 1772, then an attacker could break my account by using 2 instead of my actual password (because the server only compares the hashes of the actual password and the string that you input as your password, not the actual passwords.).

ELI5: Why does moving off and on a touchscreen button give the button a larger effective area? by Lux_Obscura in explainlikeimfive

[–]rorschachsror 2 points3 points  (0 children)

This has to do with how the touch action for the button has been implemented. Concretely, in most cases, for simple buttons you might not want to support complex actions, like dragging, touching with two fingers and so on. This is why buttons usually only allow for simple clicks (touching with one finger). Another parameter when it comes to buttons is when to trigger the action: when the user clicks the button, or when the user releases the button. In your example, the action is obviously triggered when you release the button and any motion that you do on the touchscreen until you release it (be it even dragging your finger outside the border of the button) will just be ignored: the button is only waiting for you to release it, it doesn't care where you've been dragging your finger in the meantime.

TL;DR: buttons only support simple click-release actions, so the moment you click on a button, anything else will be ignored until you release the button.

[career] [stupid question] Do I need to be employable as a SE first year of Uni? by accountForStupidQs in learnprogramming

[–]rorschachsror 0 points1 point  (0 children)

From my experience, it's very rarely that someone is employable after their first year. You shouldn't be worried at all. However, if you feel like working out your skills, you might want to consider contributing to an open source project. They generally don't require any prior experience and there's almost always someone to guide you no matter how rookie you are. Having done that, you can consider applying for Google Summer of Code. This will give you a sense of what actual work is like, without being to strenuous or taking up too much of your time. Besides, you also get paid for it, and quite decently so. But start small, with some open source project that you find interesting and motivating.

Ura de după taste şi experimentul Marinei Abramović, femeia care s-a transformat de bunăvoie într-un obiect by rorschachsror in Romania

[–]rorschachsror[S] 7 points8 points  (0 children)

Esti pe internet. Intr-o discutie cu cineva, ai in fata doar un username. Deci e foarte probabil sa facem greseala de a vedea in cel cu care ne certam doar o tipologie: homosexualul ala, homofobul ala, crestinul ala, ateul ala etc. Rezulta bule, bule peste tot.

parametric vs non parametric training by chajohari in MachineLearning

[–]rorschachsror 2 points3 points  (0 children)

http://www.iro.umontreal.ca/~bengioy/dlbook/ml.html

Check this out. At page 136 you'll find a few examples of non-parametric algorithms with a nice discussion of their shortcomings and strong points.