Great questions.
1) What's the difference between Heavy, Moderate, Light and No caching?
The difference is the amount of time that objects are left in memory.
Setting this to Heavy is your best option because even if you have objects in memory longer they can still be pulled out if the memory is needed for a higher priority.
Even on Heavy Caching, the longest time is only 2 hours for most objects.
**Do not set it to No Caching, I have seen sites stop responding at startup and not be able to come back online until this setting was cahnged back in the DB.
2.)There's alot of authentication mode in "Authentication" tab. What does each of them mean?
Unless you are highly concerned about the information your site delivers to authenticated users being cached in their local browser cache, you should set this to public, or private.
Public allows the information to be cached by a proxy server that may be between them and your site, private says that it should only be cached locally.
More on that here:
http://blogs.snapsis.com/PermaLink,guid,46c9ab35-9bb7-4ff9-a8e9-63ff3497c7f0.aspx
3) Which improves speed better or they are the same : Disk caching and Memory caching?
Memory caching is more performant then Disk Caching, but disk caching can survive an app restart without having to rebuild.
Also, If you want performance gains better then all of these options, please check out my free dynamic page output caching and compression module:
http://www.snapsis.com/pageBlaster.aspx